Rust and Python Ethereum Agent Based Modelling Library
VERBS
Python ABM library built around Rust backend.
Full documentation can be found here.
Getting Started
Installation
VERBS can be installed via pip using
pip install verbs
Building from Source
Building VERBS requires maturin to be installed.
:warning: On OSX `homebrewpatchelfshould be manually installed using
The Python package can be built using hatch by running
<pre><code class="lang-">hatch run dev:build</code></pre>
Jupyter Notebook
A jupyter notebook with VERBS installed as a dependency can be run using hatch
<pre><code class="lang-">hatch run notebook:jupyter</code></pre>
Git Dependency
VERBS can be added as a direct dependency to your projects pyproject.toml but requires maturin to be added as a build requirement, for example
<pre><code class="lang-">[build-system] requires = ["setuptools >= 61.0", "maturin>=1.2,<2.0"] build-backend = "setuptools.build_meta"</code></pre>
Examples
Examples of models implemented using VERBS can be found in /examples`. Larger examples can also be found in this repo.
Developers & Contributing
VERBS is under active development, if you notice a problem or have a suggestion please open an issue.
We welcome contributions to this project, see here for developer notes.
Rust Package
The core rust simulation engine can be used to write simulation purely in Rust, with a significant gain in performance over Python in most cases. See here for the Rust package API documentation and here for usage notes.
Acknowledgements
VERBS simulation environments make extensive use of revm a Rust implementation of the Ethereum virtual machine, and alloy Rust Ethereum libraries.