rssn

RSSN Project Architecture

1. High-Level Overview

The rssn library is a modular, multi-layer system designed for high-performance scientific computing. Its architecture is centered around an asynchronous ComputeEngine that acts as the primary user entry point and orchestrates the various specialized subsystems. This design prioritizes performance, safety, and extensibility.

graph TD
    subgraph User Interaction Layer
        A[External Languages <br>(C, C++, Python)] --> B{FFI Layer};
        U[Rust Library Users] --> C{ComputeEngine <br> (Async Task Orchestrator)};
        B --> C;
    end

    subgraph Core Systems
        C --> D{Core Symbolic System <br> (DAG, Primitives, Simplifier)};
        C --> E[Core Numerical System <br> (Traits, Algorithms)];
        C --> P[Physics Simulation System];
        C --> J[JIT Compilation Engine];
    end

    subgraph Utility Modules
        I[Input & Parsing] --> C;
        D --> O[Output Module <br> (LaTeX, Typst)];
        F[Plugin System] -.-> C;
    end

2. Key Architectural Pillars

2.1. The ComputeEngine: Central Orchestrator

The primary interface to the rssn library is the ComputeEngine. This asynchronous component manages the entire lifecycle of a computation.

2.2. The Core Symbolic System

The heart of rssn is its symbolic computation engine, which is utilized by the ComputeEngine for all mathematical manipulations.

2.3. The Flexible Numerical System

The numerical module provides a suite of algorithms for scientific computing, implemented against generic traits to remain flexible. It includes methods for integration, optimization, and solving differential equations.

2.4. The FFI Layer and Extensible Blinding

The Foreign Function Interface (FFI) is a critical component for interoperability, designed for safety and performance.

2.5. Other Key Modules