Skip to content

Technical Overview

Meenakshi Dhanani edited this page Apr 4, 2020 · 1 revision

To implement large-scale agent-based simulations, developers historically relied on C and C++ due to performance, while struggling to deal with tedious explicit memory management. This struggle translates into software defects and lower developer productivity. More recently, the desire to harness multi-core systems via concurrent software complicates design and implementation when memory is shared among compute cores. When we faced this situation, we were looking for a system programming language as fast as C and C++ but without caveats around memory management. Between Go and Rust, we chose Rust language which guarantees safety in memory management even for concurrency, without a run-time or garbage collector.

Our key goals for EpiRust are:

  • Performance
  • Flexibility
  • Robustness
Clone this wiki locally