1 个不稳定版本
0.1.0 | 2023年9月25日 |
---|
#2243 in 开发工具
1MB
30K SLoC
janet-rs-sys
Janet 编程语言的原始 Rust 绑定
use janet_rs_sys::*;
use std::ffi::*;
fn main()
{
let result = unsafe { janet_init() };
assert_eq!(result, 0);
let env = unsafe { janet_core_env(std::ptr::null_mut()) };
let code =
CString::new(r#"(print "Hello World!")"#).unwrap().as_c_str().as_ptr();
let file = CString::new("hello-world.janet").unwrap().as_c_str().as_ptr();
let result =
unsafe { janet_dostring(env, code, file, std::ptr::null_mut()) };
assert_eq!(result, 0);
}
注意
目前,由于 bindgen 在 FFI 层使用 u128
导致的一些奇怪错误,这些绑定仅在 Windows 上工作。由于在 Nix 平台上难以确定错误,因此可能没有太多工作要做以使 Linux 和 MacOS 版本工作。
依赖项
在项目中使用 janet-rs-sys
时需要这些依赖项
- Meson: 构建 Janet
- Ninja: 由 Meson 使用
- Clang: Bindgen 使用 libclang
开发依赖项
初始化子模块
$ git submodule update --init --recursive
Windows
在 janet-rs-sys
的开发过程中,需要在 Windows 上使用 Visual Studio 开发者命令提示符来构建。
无运行时依赖
~0–2.6MB
~43K SLoC