Skip to content

rn7s2/racket-sys

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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 8.13 comes from official Racket distribution.
  • For Linux, the bundled Racket 8.10 comes from Ubuntu APT.

Use system Racket:

Set environment variables (see below):

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

  • 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.

Releases

No releases published

Packages

No packages published