12个版本 (6个重大更改)
0.7.0 | 2024年3月15日 |
---|---|
0.6.0 | 2023年9月10日 |
0.5.0 | 2021年12月5日 |
0.4.1 | 2021年9月7日 |
0.1.2 | 2020年9月6日 |
#77 in 编程语言
670KB
10K SLoC
JanetRS
一个使用Rust语言为Janet C API提供高级绑定的crate。
目标
提供一个安全且易于使用的接口来访问Janet C API,以便使用Rust创建Janet客户端和模块/库。
该项目仍处于早期阶段,可能会有重大更改,目前还没有最低支持的Rust版本(MSRV)。
注意,如果未设置功能"almagation"或"link-system",则大多数文档测试将失败,因为这些测试大多数需要Janet运行时才能正常工作。
Cargo特性
std
:为仅存在于std
的类型启用一些trait实现,以及Error traitunicode
:为JanetString和JanetBuffer启用更多方法inline-more
:更激进的内联amalgation
:将Janet运行时链接到包中,启用使用客户端模块unicode
:为JanetString和JanetBuffer启用一些Unicode方法system
:使用系统头文件来获取Janet函数link-system
:从系统将Janet运行时链接到包中,启用使用客户端模块nightly
:启用crate中使用的nightly功能的一些部分,要使用此功能,您必须使用nightly Rust版本编译crate
环境变量
这些变量仅在启用amalgation
特性时使用
可以使用环境变量覆盖一些Janet定义。
JANET_RECURSION_GUARD=<整数>
JANET_MAX_PROTO_DEPTH=<整数>
JANET_MAX_MACRO_EXPAND=<整数>
JANET_STACK_MAX=<整数>
许可协议
本软件依据 MIT 公共许可协议 许可。
TODO: 类型:缺少或未完善
- 序列化
[ ]: 缺少
[I]: 不完整
[X]: 完成
可能还有更多内容缺失,您可以使用 lowlevel
模块来访问 Janet 的原始 C API
TODO: 库级别
- 更好的文档。
- 序列化机制
致谢
- 感谢 Calvin Rose 创建了这个叫做 Janet 的惊人语言
- 感谢 andrewchambers 为 Janet_ll crate 做出贡献,并与我们就这个 crate 的抽象讨论了一些想法
依赖项
~5–8MB
~135K SLoC