GitHub - rovelstars/rasmalai · GitHub
Skip to content
rovelstarsPublic

Repository files navigation

Rasmalai logo

Rasmalai (rnx)

CI status GitHub stars Discord server

Documentation · Issues · Website · View packages

Stability: 0.x means breaking changes

Rasmalai is pre-1.0. While the major version is 0, expect breaking changes in any release with no deprecation period and no backward compatibility: CLI flags, manifest keys, registry API paths, file layouts, and language semantics can all change. Pin your toolchain (rnx --version, lockfiles, pinned container images) and read release notes before upgrading. Do not build production systems on 0.x without accepting that upgrades may require code and workflow changes. The public registry is a development environment: its stored packages may be wiped and republished from scratch at any time with no migration.

What is Rasmalai?

Rasmalai is a high-performance compiled programming language. It pairs TypeScript-like developer ergonomics with native C-ABI interop, a multi-pass LIR optimizer, a Cranelift JIT for fast dev cycles, and an LLVM AOT backend for release builds. One toolchain covers scripting, native binaries, and a browser playground.

Why does it exist?

Mainstream systems languages force a choice: ergonomics or control. Rasmalai refuses it — memory safety through ARC with explicit cyclic edges instead of a garbage collector, Python-grade readability with native execution speed, and a standard library that treats files, sockets, threads, and SIMD as first-class citizens rather than FFI afterthoughts.

Install

Linux and macOS (installs into ~/.local/bin by default, honors $XDG_BIN_HOME when set):

curl -fsSL https://rasmalai.rovelstars.com/install.sh | sh

Windows (PowerShell, installs into %LOCALAPPDATA%\rnx by default):

irm https://rasmalai.rovelstars.com/install.ps1 | iex

Pin a version, or install elsewhere:

curl -fsSL https://rasmalai.rovelstars.com/install.sh | sh -s -- v0.1.0
curl -fsSL https://rasmalai.rovelstars.com/install.sh | sh -s -- --prefix /usr/local
& ([scriptblock]::Create((iwr https://rasmalai.rovelstars.com/install.ps1).Content)) -Version v0.1.0

Build from source (needs Rust stable and LLVM 22):

cargo build --release

The binary lands at ./target/release/rnx.

The installer also seeds the standard library into the global cache (~/.cache/rnx, or $RNX_CACHE_HOME when set) by running rnx download for you: the rnx binary carries no library sources, so every @std/* import resolves from that cache. An offline install warns instead of failing — run rnx download once online, or rnx doctor --repair-std to check and repair the cache at any time.

Upgrade by re-running the same command you installed with — running it again with no version argument always moves you to the latest release:

curl -fsSL https://rasmalai.rovelstars.com/install.sh | sh
irm https://rasmalai.rovelstars.com/install.ps1 | iex

Use

Run a script (JIT, dev mode):

rnx run path/to/main.rnx

Compile a native binary ahead of time (LLVM, release mode):

rnx build path/to/main.rnx

Program arguments go after --:

rnx run path/to/main.rnx -- arg1 arg2

Run the test suite:

cargo test --workspace

Try it without installing anything: the playground runs the language in your browser.

Roadmap

  • Accounts and package management server integration, so the registry can serve publish, yank, ownership, and access-control requests instead of org-token-only seeding.
  • Native cross-platform UI, so Rasmalai programs can ship graphical interfaces on every supported OS from one codebase.

How to contribute

Issues and pull requests are welcome at rovelstars/rasmalai. Open an issue describing the problem or proposal first for anything beyond a trivial fix, then send a PR against main. Every compiler change needs tests; every user-facing change needs docs.

Layout

  • compiler/ — the language itself: lexer, parser, semantic analysis, LIR lowering and optimization, interpreter, Cranelift JIT, LLVM AOT, native C-ABI runtime, and the rnx CLI.
  • examples/ — reserved for language samples (currently empty).
  • tools/rnx-bindgen/ — C-header binding generator written in pure .rnx. Turns system headers (zlib, sqlite3) into Rasmalai modules.
  • benches/ — performance and scaling benchmarks.
  • editors/ — Helix, Neovim, VSCode, and Zed extensions.
  • website/ — SvelteKit documentation and interactive playground.

License

Dual-licensed, at your option: MIT OR Apache-2.0. See LICENSE.