rscm

Crates.iorscm
lib.rsrscm
version0.4.1
created_at2026-01-14 11:39:42.092221+00
updated_at2026-01-17 04:06:10.521022+00
descriptionRust Simple Climate Model - PyO3 Python bindings
homepage
repositoryhttps://github.com/lewisjared/rscm
max_upload_size
id2042642
size31,578
Jared Lewis (lewisjared)

documentation

README

Rust Simple Climate Model (RSCM)

This is intended as a PoC of the use of Rust for simple climate models. The aim is to provide a framework for building components in both Rust and Python.

Design goals

  • Fast
  • Easy to extend
  • Understandable by non-Rust developers
  • Can be driven from Python

Getting Started

This project comprises of a Rust library and a Python package (rcsm) which includes a Python extension module to provide access to the Rust library.

Dependencies

The following dependencies are required to build the project:

  • Rust
  • uv (Python package management)

after these dependencies have been installed the local Python environment can be initialised using:

make virtual-environment

Rust is a compiled language, the Python extension module must be recompiled after any changes to the Rust code. This can be done using:

make build-dev

Tests

Rust unit tests are embedded alongside the implementation files. These tests can be built and run using the following (or using RustRover):

cargo test

Documentation

A mkdocs-based documentation site is in the docs/ directory. These docs provide an overview of the whole project and provide reference documentation for the Python interface with some example notebooks.

These docs can be built using:

make docs

The documentation for the Rust codebase can be built using:

make docs-rust
Commit count: 372

cargo fmt