A crate with high level bindings to Janet C API.
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.
std: Enable some trait impl for types that only exist on the std 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 moduleunicode: Enable some unicode methods for JanetString and JanetBuffersystem: Use system header to get Janet functionslink-system: Link the Janet runtime to the package from the system, enabling
to use the client modulenightly: Enable some parts of the crate that uses nightly features, to use
this feature you must compile the crate using a nightly rust versionBy default, the following features are enabled: std, unicode, amalgation.
Note: If you don't need the Janet runtime (eg. making a Janet Library), you can use disable the default features
janetrs = { version = "0.7.0", default-features = false, features = ["std", "unicode"] }
These variables are only used when the amalgation feature is enabled
It is possible to use environment variables to overwrite some Janet definitions.
JANET_RECURSION_GUARD=<integer>JANET_MAX_PROTO_DEPTH=<integer>JANET_MAX_MACRO_EXPAND=<integer>JANET_STACK_MAX=<integer>This software is licensed under the terms of the MIT Public License.
[ ]: 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
$ claude mcp add janetrs \
-- python -m otcore.mcp_server <graph>