Expand description
Oxur: A Lisp dialect that treats Rust as its compilation target and runtime
This is the umbrella crate for the Oxur project, providing convenient access to all major components of the Oxur ecosystem.
§Overview
Oxur is a Lisp dialect designed to leverage Rust’s type system, ownership model, and ecosystem while providing Lisp’s expressiveness and metaprogramming capabilities.
§Architecture
The Oxur compilation pipeline consists of five stages:
- Parse → Surface Forms (S-expressions)
- Expand → Core Forms (Canonical IR)
- Lower → Rust AST
- Codegen → Rust Source Code
- Compile → Binary (via rustc)
§Crates
This umbrella crate re-exports the following components:
oxur_lang: The Oxur Lisp compiler (stages 1-2)oxur_comp: The backend compiler (stages 3-5)oxur_ast: Bidirectional Rust AST ↔ S-expression conversionoxur_repl: Interactive REPL server/clientoxur_cli: Common CLI utilities and infrastructureoxur_pretty: Pretty printing for code and data structures
§Quick Start
// Example usage will be added as the API stabilizes
use oxur::*;§Design Philosophy
- 100% Rust Interoperability - Can call any Rust code, Rust can call any Oxur code
- Rust Semantics, Lisp Syntax - Not Lisp semantics adapted to Rust
- Canonical S-expressions - Single authoritative format for AST representation
- Round-trip Preservation - X → transform → X must preserve meaning
- Type-First Design - Leverage Rust’s type system fully
§Project Status
Oxur is in active development. Different components are at various stages:
- oxur-ast: ~80% complete, functional conversion
- oxur-lang: Planning stage
- oxur-comp: Planning stage
- oxur-repl: Planning stage
- oxur-cli: Early stage, utilities available
§Resources
§License
Licensed under either of Apache License, Version 2.0 or MIT license at your option.
Re-exports§
pub use oxur_ast;pub use oxur_cli;pub use oxur_comp;pub use oxur_lang;pub use oxur_pretty;pub use oxur_repl;