Developer Documentation

Welcome to the Rusty Beam developer documentation. This section provides in-depth technical information for developers who want to understand, extend, or contribute to Rusty Beam.

🚀 Getting Started

New to Rusty Beam development? Start with the Architecture Overview to understand the system design, then move on to the Plugin Development Guide to build your first plugin.

Architecture

Deep dive into Rusty Beam's architecture, including:

Essential reading for understanding how Rusty Beam works under the hood.

Plugin Development

Complete guide to creating Rusty Beam plugins:

Everything you need to extend Rusty Beam with custom functionality.

Core Concepts

The Plugin Pipeline

Rusty Beam processes every request through a configurable pipeline of plugins. Each plugin can:

Async-First Design

Built on Tokio and Hyper, Rusty Beam is fully asynchronous. All I/O operations are non-blocking, enabling high concurrency with low resource usage.

HTML as Configuration

Following the DOM-Aware Server philosophy, even server configuration is HTML. This enables:

Development Setup

Prerequisites

# Install Rust (latest stable)
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

# Clone the repository
git clone https://github.com/jamesaduncan/rusty-beam.git
cd rusty-beam

# Build the project
cargo build --release

# Build all plugins
./build-plugins.sh

Running Tests

# Run all tests
./run_all_tests.sh

# Run specific test suites
cargo test                      # Unit tests
./run_hurl_tests.sh            # Integration tests
./run_plugin_tests_isolated.sh # Plugin tests

Contributing

Code Style

Pull Request Process

  1. Fork the repository and create a feature branch
  2. Make your changes with appropriate tests
  3. Ensure all tests pass: ./run_all_tests.sh
  4. Update documentation if needed
  5. Submit a pull request with a clear description

Advanced Topics

Performance Optimization

Security Considerations

Resources

Internal Documentation

External Resources