FREEDOM251

Freedom251 › Network Simulation Software

Days

Paid LinuxMacWindows

Visit Days Alternatives

Days's own site

What Days is

Days is an exact discrete-event packet network simulator for building network models and examining their behavior. Simulations are configured in TOML files and run through a command-line program; runnable example configurations are included. Days models fat-tree, torus, dragonfly, and custom graph topologies, plus TCP Reno and CUBIC, rate-paced sources, DCQCN, and CNP. Switch mechanisms include FIFO, strict priority, DRR, WRR, exact-rational WFQ, TailDrop, ECN thresholds, RED, RED with ECN, and PFC. It also supports ring all-reduce and all-gather over TCP, with compute stages represented by delays. Events are ordered by integer-nanosecond time, phase, sending process, and sequence number, without floating-point arithmetic in the simulation semantics. Scalar, multicore CPU, Apple Metal, and NVIDIA CUDA backends aim to produce byte-identical complete simulation states. The project describes five Lean-proved theorems about parallel scheduling and checks backend conformance against serial results. Days can be used to debug simulations, reproduce regressions across backends, or compare other simulators’ approximations with an exact reference. It runs on Linux, macOS, and Windows and is open source under AGPL-3.0-only. The site footer credits Baochun Li.

Who it suits

Days suits people building packet network simulations who need configurable topologies, transport protocols, queues, and collectives. Its exact reference model and backend conformance checks are also aimed at debugging simulations, reproducing regressions, and comparing approximations.

What it does well

  • Models fat-tree, torus, dragonfly, and custom graph topologies.
  • Offers Scalar, multicore CPU, Metal, and CUDA backends.
  • Uses integer-nanosecond event ordering without floating-point simulation semantics.
  • Includes runnable example configurations.
  • Open source under AGPL-3.0-only.

What to know first

  • RED, collectives, and compute stages are limited to Scalar and CPU.
  • CUDA builds require the CUDA 13 toolkit.
  • Metal runs on Apple GPUs except the M1 family.

Limits

RED admission, collectives, and compute stages run only on Scalar and CPU; Metal and CUDA reject those scenarios during validation. CUDA builds require the CUDA 13 toolkit, and Metal runs on Apple GPUs except the M1 family.

Getting started

  1. Visit https://days.sh/.
  2. Build and run Days from the repository with Cargo.
  3. Enable the relevant Cargo feature to build a GPU backend.
  4. Install the CUDA 13 toolkit for CUDA builds.
  5. Configure a simulation in TOML and pass the file to the command-line program.

Verdict

Choose Days if you need an exact packet network simulator with configurable models and multiple execution backends. Look elsewhere if your scenarios require RED, collectives, or compute stages on Metal or CUDA, since those are rejected during validation.

Questions

Is Days free and open source?

Days is listed as free and open source under the AGPL-3.0-only license.

Which operating systems does it support?

Days is listed for Linux, macOS, and Windows.

How are simulations configured and run?

Simulations use TOML configuration files passed to the command-line program. The project includes runnable example configurations.

Which execution backends are available?

Days offers Scalar, multicore CPU, Apple Metal, and NVIDIA CUDA backends. GPU backends require enabling their Cargo feature.

What are the GPU backend limits?

RED admission, collectives, and compute stages are supported only on Scalar and CPU. CUDA builds require the CUDA 13 toolkit; Metal runs on Apple GPUs except the M1 family.

Who is credited as the maker?

The Days site footer credits Baochun Li.

Facts from Days's own pages

Backend limits
RED, collectives, and compute stages run only on Scalar and CPU; Metal and CUDA reject those scenarios during validation. · days.sh, 11 Oct 2026
Collectives
It supports ring all-reduce and all-gather over TCP, with delay-only compute stages. · days.sh, 4 Oct 2026
Configuration
Simulations are configured in a TOML file passed to the command-line program. · days.sh, 4 Oct 2026
Determinism
Events are ordered by integer-nanosecond time, phase, sending process, and sequence number, with no floating-point arithmetic in the simulation semantics. · days.sh, 11 Oct 2026
Execution
It provides scalar, multicore CPU, Apple Metal, and NVIDIA CUDA backends that aim to produce byte-identical complete simulation states. · days.sh, 11 Oct 2026
GPU limitation
RED admission, collectives, and compute stages are supported only on Scalar and CPU; Metal and CUDA reject those scenarios during validation. · days.sh, 4 Oct 2026
GPU requirements
CUDA builds require a CUDA 13 toolkit, and Metal runs on Apple GPUs except the M1 family. · days.sh, 11 Oct 2026
Installation
The installation guide instructs users to build Days from source with stable Rust and Cargo. · days.sh, 11 Oct 2026
Intended users
The site describes using Days to debug simulations, reproduce regressions across backends, and compare other simulators’ approximations against an exact reference. · days.sh, 4 Oct 2026
License
The project is licensed under AGPL-3.0-only. · github.com, 11 Oct 2026
Maker attribution
The Days site footer credits Baochun Li. · days.sh, 11 Oct 2026
Network models
It models fat-tree, torus, dragonfly, and custom graph topologies, along with TCP Reno and CUBIC, rate-paced sources, DCQCN, and CNP. · days.sh, 4 Oct 2026
Outputs
By default, Days writes periodic CSV reports for source, sink, and switch statistics; additional traces depend on enabled features. · days.sh, 11 Oct 2026
Parallel correctness
The site describes five Lean-proved theorems about the executor’s scheduling model and says backend conformance is checked against the serial result. · days.sh, 4 Oct 2026
Parallel execution
The site says five Lean theorems establish that parallel execution reaches the same complete state as canonical serial execution. · days.sh, 11 Oct 2026
Product
Days is an exact discrete-event packet network simulator. · days.sh, 4 Oct 2026
Programming model
Network elements operate as isolated sequential processes with private state and communicate through timestamped messages. · days.sh, 11 Oct 2026
Purpose
Days is an exact discrete-event packet network simulator. · days.sh, 11 Oct 2026
Supported models
Days models fat-tree, torus, and dragonfly topologies, TCP Reno and CUBIC, DCQCN, PFC, several queue disciplines, and ring all-reduce and all-gather collectives. · days.sh, 11 Oct 2026
Switch features
Supported switch mechanisms include FIFO, strict priority, DRR, WRR, exact-rational WFQ, TailDrop, ECN thresholds, RED, RED with ECN, and PFC. · days.sh, 4 Oct 2026
Usage
Days runs from the command line with a TOML configuration file and includes runnable example configurations. · days.sh, 11 Oct 2026

Where Days stands on Freedom251

Look at these too