racket-sys

Crates.ioracket-sys
lib.rsracket-sys
version0.3.3
sourcesrc
created_at2024-06-22 22:57:03.073566
updated_at2024-11-23 19:57:14.995904
descriptionRust bindings to Racket C API
homepage
repositoryhttps://github.com/rn7s2/racket-sys
max_upload_size
id1280851
size146,649
Ruiqi Lei (rn7s2)

documentation

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

README

racket-sys

crates.io

Rust bindings to Racket C API

About Racket: https://racket-lang.org/.

Prerequisites:

  • Base env: Rust toolchain, Clang toolchain and Racket installation
  • Windows: Visual Studio
  • MacOS: Xcode CommandLine tools, iconv, ncurses
  • Linux:
    • Only tested on Ubuntu 24.04
    • sudo apt install racket libncurses-dev, liblz4-dev, libzstd-dev

Installation:

Use bundled Racket (default feature):

This crate includes a prebuilt Racket runtime for Windows, MacOS, and Linux.

  • For Windows and MacOS, the bundled Racket comes from official Racket distribution.
  • For Linux, the bundled Racket comes from Ubuntu APT.

Use system Racket:

Set environment variables (see below):

  • RACKET_CS_VERSION: Only for MacOS. If not set, default to 8.15.

  • RACKET_CS_HOME: Racket installation directory. If not set, default to:

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

Examples:

  • helloworld examples/helloworld.rs:

    cargo run --example helloworld
    

    screenshot on Windows:

  • factorial examples/factorial.rs and examples/factorial.rkt:

    This example demos how to require Racket module from Rust code.

    cargo run --example factorial
    

    screenshot on Windows:

    Note: set env variable RKT_COLLECTS_DIR to racket installation/collects. For example, on MacOS:

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

APIs:

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

Read https://docs.racket-lang.org/inside/cs-embedding.html for more information on how to embed Racket in your application.

Commit count: 17

cargo fmt