# evcxr/evcxr

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/evcxr-evcxr).**

6,356 stars · 234 forks · Rust · other

## Links

- GitHub: https://github.com/evcxr/evcxr
- awesome-repositories: https://awesome-repositories.com/repository/evcxr-evcxr.md

## Description

EvalXR is an interactive Rust compiler that compiles code into dynamically loaded libraries for iterative evaluation without restarting the process. It serves as a Rust Jupyter kernel, a notebook runtime, and a REPL environment, all with state retention across evaluations.

The project provides a stateful Rust evaluation engine that runs code snippets in isolated sandboxes while keeping functions and variables alive between executions. It supports cell-based execution, compiling Rust code into a shared library and loading it into the same process to preserve state, with an error-aware compilation pipeline that captures and reports compiler errors and panics as structured messages. Communication with Jupyter frontends follows the standard ZMQ-based message protocol for interactive notebook execution.

The tool enables interactive Rust programming, literate programming with Rust, and Rust code prototyping. It supports Jupyter cell execution with rich output, persistent interactive sessions for debugging, variable and type inspection, and shareable Rust notebooks.

## Tags

### Programming Languages & Runtimes

- [Interactive Rust Compilers](https://awesome-repositories.com/f/programming-languages-runtimes/rust-based-compilers/interactive-rust-compilers.md) — Compiles Rust code into dynamically loaded libraries for iterative evaluation without restarting the process.
- [Runtime Code Compilation](https://awesome-repositories.com/f/programming-languages-runtimes/compile-time-expression-evaluation/runtime-code-compilation.md) — Compiles Rust code into shared libraries at runtime for iterative evaluation without restarting the process.
- [Notebook Runtimes](https://awesome-repositories.com/f/programming-languages-runtimes/computational-kernel-runtimes/notebook-runtimes.md) — Runs Rust code in notebook cells with inline output and state retention for literate programming.
- [Interactive Rust Environments](https://awesome-repositories.com/f/programming-languages-runtimes/programming-language-varieties/programming-languages/systems-languages/rust/interactive-rust-environments.md) — Enables running Rust code line by line in a REPL or Jupyter notebook with immediate results.
- [Sandboxed Code Evaluators](https://awesome-repositories.com/f/programming-languages-runtimes/source-code-compilers/sandboxed-code-evaluators.md) — Compiles and runs Rust code in a sandboxed environment that preserves state between evaluations. ([source](https://github.com/evcxr/evcxr/tree/main/evcxr/))

### Data & Databases

- [Notebook Cell Execution](https://awesome-repositories.com/f/data-databases/horizontal-database-scaling/multi-region-scaling/cell-based-scaling/notebook-cell-execution.md) — Provides a cell-based execution model that preserves Rust state across evaluations in Jupyter notebooks.

### Development Tools & Productivity

- [Stateful Snippet Runners](https://awesome-repositories.com/f/development-tools-productivity/code-editors-ides/snippet-management/code-snippet-repositories/stateful-snippet-runners.md) — Runs isolated Rust code snippets while keeping functions and variables available across multiple executions.
- [Rust](https://awesome-repositories.com/f/development-tools-productivity/interactive-repls/rust.md) — Evaluates Rust code one line at a time in a REPL or notebook, showing results immediately. ([source](https://cdn.jsdelivr.net/gh/evcxr/evcxr@main/README.md))
- [Jupyter Kernel Protocols](https://awesome-repositories.com/f/development-tools-productivity/jupyter-kernel-protocols.md) — Communicates with Jupyter frontends using the standard ZMQ-based message protocol for interactive notebook execution.
- [Jupyter Language Kernels](https://awesome-repositories.com/f/development-tools-productivity/jupyter-language-kernels.md) — Serves as a Jupyter kernel that executes Rust code in notebook cells for literate programming.
- [Rust](https://awesome-repositories.com/f/development-tools-productivity/notebook-integrations/rust.md) — Integrates Rust as a kernel inside Jupyter notebooks for literate, interactive programming with visual outputs. ([source](https://cdn.jsdelivr.net/gh/evcxr/evcxr@main/README.md))
- [Rust REPLs](https://awesome-repositories.com/f/development-tools-productivity/read-eval-print-loops/rust-repls.md) — Provides a read-eval-print loop for Rust that compiles and runs code line by line with state retention.
- [Stateful Rust Evaluators](https://awesome-repositories.com/f/development-tools-productivity/sequential-execution-engines/sequential-evaluation-engines/stateful-rust-evaluators.md) — Evaluates Rust code snippets interactively while preserving state across evaluations for REPL and notebook environments.
- [Structured Compilation Diagnostics](https://awesome-repositories.com/f/development-tools-productivity/build-tooling/template-compilation-tools/template-compilation-tools/sass-compilers/compilation-error-reporting/structured-compilation-diagnostics.md) — Captures Rust compiler errors and panics as structured messages for immediate feedback during interactive sessions.
- [Variable Inspection Tools](https://awesome-repositories.com/f/development-tools-productivity/debugging-profiling-testing/debugging-diagnostics/debugging-inspection-tools/debugging-and-inspection-tools/intermediate-output-inspection/variable-inspection-tools.md) — Displays current values and types of variables in the evaluation context for exploration and debugging. ([source](https://cdn.jsdelivr.net/gh/evcxr/evcxr@main/README.md))
- [Shareable Notebooks](https://awesome-repositories.com/f/development-tools-productivity/interactive-notebook-environments/shareable-notebooks.md) — Provides shareable Rust notebooks that others can run without any local setup. ([source](https://cdn.jsdelivr.net/gh/evcxr/evcxr@main/README.md))
- [Rust Snippet Prototyping](https://awesome-repositories.com/f/development-tools-productivity/interactive-prototyping/code-prototyping/rust-snippet-prototyping.md) — Provides an isolated environment for quickly testing Rust snippets with persistent variables across evaluations.

### Education & Learning Resources

- [Rust Jupyter Cell Execution](https://awesome-repositories.com/f/education-learning-resources/jupyter-notebook-curricula/rust-jupyter-cell-execution.md) — Runs Rust code cells inside a Jupyter notebook, producing rich output integrated with the notebook workflow. ([source](https://cdn.jsdelivr.net/gh/evcxr/evcxr@main/README.md))
- [Literate Programming Notebooks](https://awesome-repositories.com/f/education-learning-resources/literate-programming-notebooks.md) — Creates executable Rust notebooks that combine code, documentation, and results for reproducible analysis.

### Operating Systems & Systems Programming

- [Dynamic Library Loading](https://awesome-repositories.com/f/operating-systems-systems-programming/dynamic-library-loading.md) — Loads compiled Rust code as shared libraries at runtime to preserve state across evaluations.
- [Evaluation State Retention](https://awesome-repositories.com/f/operating-systems-systems-programming/kernel-core-internals/process-and-memory-management/retentive-state-mechanisms/evaluation-state-retention.md) — Retains user-defined variables and functions across multiple evaluations by reusing the same compiled library context.

### Security & Cryptography

- [Code Evaluation Sessions](https://awesome-repositories.com/f/security-cryptography/identity-access-management/session-management/stateful-session-persistence/agentic-session-persistence/shell-session-persistence/code-evaluation-sessions.md) — Evaluates Rust expressions and statements in a persistent session for iterative experimentation and debugging. ([source](https://cdn.jsdelivr.net/gh/evcxr/evcxr@main/README.md))
