runic-kit 0.0.1

Minimalist Rust toolkit for building lexers, parsers, interpreters, transpilers, and compilers from scratch.
Documentation
  • Coverage
  • 97.78%
    44 out of 45 items documented8 out of 29 items with examples
  • Size
  • Source code size: 36.7 kB This is the summed size of all the files inside the crates.io package for this release.
  • Documentation size: 3.18 MB This is the summed size of all files generated by rustdoc for all configured targets
  • Ø build duration
  • this release: 15s Average build duration of successful builds.
  • all releases: 15s Average build duration of successful builds in releases after 2024-10-23.
  • Links
  • Homepage
  • Repository
  • crates.io
  • Dependencies
  • Versions
  • Owners
  • SpideyZac

Runic

Rust GitHub Actions Licence

Runic is a minimalist Rust library for building lexers, parsers, interpreters, transpilers, and compilers. It provides the raw tools needed to construct language tooling from scratch, without relying on parser generators, grammar files, or heavyweight abstractions.

Inspired by the raw expressiveness of early programming tools and languages, Runic helps you forge your own compilers and interpreters using simple, explicit, and composable components.

Whether you’re building a hobby language, analyzing real-world code, or crafting a custom runtime for embedded scripting, Runic provides the bones, you bring the soul.

✨ Philosophy

Runic is designed with the following core principles:

  • 🧱 Explicit > Implicit: You build everything using explicit components. There are no hidden magic or implicit behaviors. Control flow and data flow are clear and visible.
  • πŸͺ„ Simple Macros Only: Runic uses simple macros to provide basic functionality and remove boilerplate. No complex macro systems or DSLs.
  • 🦴 Bare-bones by Design: Runic is intentionally minimal. It provides the essential building blocks without unnecessary abstractions or features. You can add complexity as needed.
  • πŸ”¬ Fully Inspectable: Every component is fully inspectable and debuggable. You can see exactly how your code is structured and how it behaves at runtime.

🧠 Why Use Runic?

  • You're building a compiler, interpreter, or transpiler from scratch and want full control over the process.
  • You don't want to learn or maintain .lalr/.peg grammar files.
  • You prefer writing struct-based, idiomatic Rust over configuring a codegen tool.
  • You want a toolkit, not a framework. Runic provides the tools, you build the framework.

πŸ› οΈ Status & Roadmap

  • 🟒 Error printing.
  • 🟒 Basic lexer & token components.
  • 🟑 Lexer utilities and common features.
  • πŸ”΄ Basic parsing components.
  • πŸ”΄ Parser utilities and common features.
  • πŸ”΄ Codegen, etc. (TBD).

πŸ“¦ Usage

(TBD)