Skip to content

title: Development description: Contributing to rustledger

Development

Guides for contributing to rustledger development.

Getting Started

  1. Clone the repository
  2. Install Rust toolchain
  3. Run cargo build --all-features
  4. Run cargo test --all-features

See CONTRIBUTING.md for detailed setup.

Guides

GuideDescription
Contributing PluginsAdding native plugins to rustledger
TestingRunning tests, adding test cases
BenchmarkingPerformance testing and profiling

Roadmaps

RoadmapDescription
Testing & Quality RoadmapTest depth, fuzzing, API stability
Importing RoadmapImports, categorization (design: import-architecture.md)
Performance RoadmapSpeed, memory, caching

Quick Commands

bash
# Build
cargo build --all-features

# Test
cargo test --all-features

# Lint
cargo clippy --all-features -- -D warnings

# Format
cargo fmt --all

# Benchmark
cargo bench

# Check dependencies
cargo deny check

Project Structure

rustledger/
├── crates/
│   ├── rustledger-core/         # Core types
│   ├── rustledger-parser/       # Lexer and parser
│   ├── rustledger-loader/       # File loading
│   ├── rustledger-booking/      # Booking engine
│   ├── rustledger-validate/     # Validation
│   ├── rustledger-query/        # BQL engine
│   ├── rustledger-completion/   # Shared completion logic
│   ├── rustledger-plugin/       # Plugin system
│   ├── rustledger-plugin-types/ # Shared plugin types
│   ├── rustledger-importer/     # Import framework
│   ├── rustledger-ops/          # Pure directive operations
│   ├── rustledger-lsp/          # LSP server
│   ├── rustledger-wasm/         # WASM target
│   ├── rustledger-ffi-component/ # Primary embedding surface (wasip2 / Component Model)
│   ├── rustledger-ffi-wasi/     # WASI FFI (wasip1 JSON-RPC) — legacy
│   └── rustledger/              # CLI binary
├── spec/                     # Specifications
└── tests/                    # Integration tests

See Also