rssn

RSSN Project Architecture

1. High-Level Overview

The rssn library is designed as a modular, multi-layer system that separates the core mathematical engine from its various interfaces and applications. This architecture prioritizes performance, safety, and extensibility.

graph TD
    A[External Languages <br>(C, C++, Python, Fortran)] --> B{FFI Layer w/ Blinding};
    B --> C[High-Level APIs <br> symbolic, numerical, physics];
    C --> D{Core Symbolic System <br> (DAG, Primitives)};
    C --> E[Core Numerical System <br> (Traits, Algorithms)];
    F[Plugin System] -.-> C;
    C --> G[Output Module <br> (LaTeX, Typst, Pretty-Print)];

2. Key Architectural Pillars

2.1. The Core Symbolic System

The heart of rssn is its symbolic computation engine, designed around performance and canonical representation.

2.2. The Flexible Numerical System

The numerical module provides a suite of algorithms for scientific computing. Its architecture is based on Rust’s trait system to remain flexible and generic.

2.3. The Parallel-Ready Physics Simulation System

The physics module is a high-level framework for building scientific simulations (e.g., FEM, FDM, FVM solvers).

2.4. Pluggable Subsystems

A key design goal is extensibility without modification of the core library. The plugins system is envisioned to allow third parties to dynamically extend the functionality of the CAS.

2.5. The FFI Layer and Extensible Blinding

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

2.6. The Output Module

The output module is responsible for rendering expressions into human-readable formats. It is decoupled from the core symbolic engine.