4 releases
new 0.2.0 | Feb 22, 2021 |
---|---|
0.1.2 | Sep 6, 2020 |
0.1.1 | Aug 28, 2020 |
0.1.0 | Aug 28, 2020 |
#122 in Development tools
32 downloads per month
Used in janetrs_macros
545KB
7.5K
SLoC
JanetRS
A crate with high level bindings to Janet C API.
Goals
Provide a safe and ergonomic interface to the Janet C API to create Janet clients and Janet modules/libraries using Rust.
This project still are in it's early stages, so breaking changes may happen, there is no minimal supported Rust version (MSRV) yet.
Notice that most doc tests will fail if the feature "almagation" or "link-system" aren't set, because most of then need it for the Janet runtime to function properly.
Cargo Features
std
: Enable some trait impl for types that only exist on thestd
and the Error traitunicode
: Enable more methods for JanetString and JanetBufferinline-more
: More aggressive inliningamalgation
: Link the Janet runtime to the package, enabling to use the client modulesystem
: Use system header to get Janet functionslink-system
: Link the Janet runtime to the package from the system, enabling to use the client module
Licensing
This software is licensed under the terms of the MIT Public License.
TODO: Types: Lacking or Incomplete
- [I] JanetAbstract
- JanetCFunction
- [I] JanetFiber
- [I] JanetFunction
- JanetPointer
- Janet Typed Array
- GC functions
[ ]: Lacking
[I]: Incomplete
[X]: Done
Probably there is much more missing, for that you can use the lowlevel
module to
access the raw C API of Janet
TODO: Lib level
- Better docs.
- We still don't know exactly how Janet panics would work on Rust, so we need to explore that and document it
Acknowledgments
- Calvin Rose for creating this amazing language called Janet
- andrewchambers for janet_ll crate and discuss with us some ideas for the abstractions of this crate
Dependencies
~3–5MB
~98K SLoC