7 个版本

0.3.2 2024年6月24日
0.3.1 2024年6月24日
0.2.2 2024年6月23日
0.1.0 2024年6月22日

#45 in #scheme

MIT 许可证

110KB
511 行代码(不含注释)

racket-sys

crates.io

Racket C API 的 Rust 绑定

关于 Racket: https://racket-lang.org/.

先决条件

  • 基础环境:Rust 工具链、Clang 工具链和 Racket 安装
  • Windows: Visual Studio
  • MacOS: Xcode CommandLine toolsiconvncurses
  • Linux
    • 仅在 Ubuntu 24.04 上进行测试
    • sudo apt install racket libncurses-devliblz4-devlibzstd-dev

安装

使用捆绑的 Racket(默认特性)

此包包含为 Windows、MacOS 和 Linux 预构建的 Racket 运行时。

  • 对于 Windows 和 MacOS,捆绑的 Racket 8.13 来自官方 Racket 发行版。
  • 对于 Linux,捆绑的 Racket 8.10 来自 Ubuntu APT。

使用系统 Racket

设置环境变量(见下文)

  • RACKET_CS_VERSION:仅适用于 MacOS。如未设置,则默认为 8.13

  • RACKET_CS_HOME:Racket 安装目录。如未设置,则默认为

    • Windows: C:\Program Files\Racket
    • MacOS: /Applications/Racket v{RACKET_CS_VERSION}
    • Linux: /usr

示例

  • helloworld examples/helloworld.rs

    cargo run --example helloworld
    

    Windows 上的截图

  • factorial examples/factorial.rsexamples/factorial.rkt

    此示例演示了如何在 Rust 代码中调用 Racket 模块。

    cargo run --example factorial
    

    Windows 上的截图

    注意:将环境变量 RKT_COLLECTS_DIR 设置为 racket installation/collects。例如,在 MacOS 上

    RKT_COLLECTS_DIR=/Applications/Racket\ v8.13/collects cargo run --example factorial
    

APIs

https://rn7s2.github.io/racket-sys/racket_sys/

阅读 https://docs.racket-lang.org/inside/cs-embedding.html 了解如何将 Racket 集成到您的应用程序中的更多信息。

无运行时依赖

~0–2MB
~40K SLoC