AsyncFlow-Sim/AsyncFlow
68.9
Adequate · 22 September 2026
4.5k
lines of production code
Python
primary language
6
measurements over time
What this system is
This system is a Python-based simulation framework designed to model and analyze network conditions, specifically focusing on latency, throughput, and server metrics. It provides a builder API and YAML configuration to define topologies and inject events like network spikes and outages. The project includes comprehensive testing for simulation scenarios and developer tooling to ensure code quality and environment setup.
Features
Added developer setup and quality check scripts
Introduced new shell and PowerShell scripts to streamline the developer workflow. The \dev\_setup\ scripts automate the initial environment configuration, ensuring Python 3.12+, Poetry, and project dependencies are installed, and then execute linting (Ruff), type-checking (MyPy), and tests (pytest). Separate \quality\_check\ scripts provide a quick path to run only linting and type-checking, while \run\_tests\ and \run\_sys\_tests\ scripts offer targeted execution of unit and system tests with appropriate environment variables and coverage reporting.
scripts · high confidence
Added example scenarios and builder API for simulating network spikes and server outages
The AsyncFlow library now includes a Pythonic builder API (the \AsyncFlow\ class) and corresponding YAML configuration files that allow users to define simulation scenarios with injected events, such as network latency spikes and server outages. Example scripts in \examples/builder\_input/\ and \examples/yaml\_input/\ demonstrate how to construct topologies (single server, load-balanced two servers) and run simulations that include these event injections, producing plots of latency, throughput, and server metrics.
examples, src/asyncflow · high confidence
Behavioural changes
Added Windows Zone.Identifier metadata to README images
The project has added Zone.Identifier alternate data streams to the dashboard and server metrics PNG files in the readme\_img directory. These files contain \[ZoneTransfer\] metadata with ZoneId=3, which is a Windows-specific mechanism used to mark downloaded or copied files as potentially unsafe. This change ensures that these images carry the appropriate security warnings when opened on Windows systems.
_readme\img · high confidence
Test coverage
Added integration and system tests for simulation scenarios
Added comprehensive test coverage for the simulation engine, including integration tests for minimal, single-server, and load-balanced topologies, as well as system tests verifying event injection (network spikes, server outages) and load balancing behavior. The suite also includes tests for invalid payload validation and unit tests for the results analyzer.
tests · high confidence
Dependencies
Initial project setup with Python 3.12 and key simulation dependencies
The project is initialized with a \pyproject.toml\ and \poetry.lock\ file, establishing a Python 3.12 environment for the 'asyncflow-sim' package. This adds core dependencies including Pydantic, NumPy, SimPy, Matplotlib, and PyYAML, alongside development tools like Pytest, Mypy, and Ruff. The lockfile also pins specific versions for transitive dependencies such as \annotated-types\, \colorama\, \contourpy\, and \coverage\.
(dependencies) · high confidence
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
How this codebase got here
This is the PUBLIC form of this artifact. Findings are listed in full, but the details of SECURITY findings — which rule fired, in which file, on which line, and how to fix it — are deliberately withheld, and any secret-scanner results are excluded entirely. Where detail is absent here it was REMOVED FOR PUBLICATION; it is not missing from the analysis. The complete artifact is available from the repository owner.
Score
- CAI 62 → 69 (+6.6)
- Rubric changed (rubric-2026.08.19 → rubric-2026.09.15) — scores are not directly comparable.
Lenses
- Code Health 95 → 96 (+1.8)
- Architecture 100 → 97 (-3.1)
- Maturity 77 → 79 (+1.8)
- Readiness 48 → 51 (+3.8)
- Security 65 → 85 (+20.5)
Resolved (39)
- Coverage not included — suite not readable by the collector
- Dependency hygiene not measured — dependency manifest found but not parsed for hygiene
- Duplicated block (10 lines × 2) (src/asyncflow/metrics/analyzer.py)
- Duplicated block (11 lines × 2) (examples/builder_input/event_injection/lb_two_servers.py)
- Duplicated block (11 lines × 4) (src/asyncflow/metrics/analyzer.py)
- Duplicated block (12 lines × 3) (src/asyncflow/metrics/analyzer.py)
- Duplicated block (13 lines × 3) (src/asyncflow/metrics/analyzer.py)
- Duplicated block (16 lines × 2) (examples/builder_input/event_injection/lb_two_servers.py)
- Duplicated block (16 lines × 2) (examples/yaml_input/event_injections/heavy_single_server.py)
- Duplicated block (16 lines × 3) (examples/builder_input/event_injection/lb_two_servers.py)
- Duplicated block (21 lines × 2) (src/asyncflow/samplers/gaussian_poisson.py)
- Duplicated block (24 lines × 2) (examples/builder_input/event_injection/single_server.py)
- Duplicated block (24 lines × 3) (examples/builder_input/event_injection/lb_two_servers.py)
- Duplicated block (8 lines × 2) (examples/yaml_input/single_server/single_server.py)
- Duplicated block (9 lines × 2) (examples/yaml_input/load_balancer/two_servers.py)
- Duplicated block (9 lines × 2) (src/asyncflow/metrics/analyzer.py)
- High CVE: [GHSA redacted] (poetry.lock)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- …and 19 more
New (47)
- Dependency hygiene PARTLY measured — Python dependencies read, no exact pin to grade for currency
- Documentation: no installation or build instructions (README.md)
- Documentation: no usage examples (README.md)
- Duplicated block (11 lines × 4) (src/asyncflow/metrics/analyzer.py)
- Duplicated block (12 lines × 3) (src/asyncflow/metrics/analyzer.py)
- Duplicated block (14–17 lines × 3) (src/asyncflow/metrics/analyzer.py)
- Duplicated block (20 lines × 3) (examples/builder_input/event_injection/lb_two_servers.py)
- Duplicated block (21 lines × 2) (src/asyncflow/metrics/analyzer.py)
- Duplicated block (21–22 lines × 2) (examples/builder_input/event_injection/lb_two_servers.py)
- Duplicated block (22–23 lines × 2) (src/asyncflow/samplers/gaussian_poisson.py)
- Duplicated block (25–26 lines × 3) (examples/builder_input/event_injection/single_server.py)
- Duplicated block (30 lines × 3) (examples/builder_input/event_injection/lb_two_servers.py)
- Duplicated block (37 lines × 3) (examples/yaml_input/event_injections/heavy_single_server.py)
- Duplicated block (39 lines × 2) (examples/builder_input/event_injection/single_server.py)
- Duplicated block (41–43 lines × 2) (examples/builder_input/event_injection/lb_two_servers.py)
- Duplicated block (5 lines × 4) (examples/yaml_input/event_injections/heavy_single_server.py)
- Duplicated block (5 lines × 4) (examples/yaml_input/event_injections/heavy_single_server.py)
- Duplicated block (6 lines × 4) (examples/yaml_input/event_injections/heavy_single_server.py)
- Duplicated block (6 lines × 5) (src/asyncflow/metrics/analyzer.py)
- Duplicated block (7 lines × 2) (examples/yaml_input/single_server/single_server.py)
- …and 27 more
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
AsyncFlow-Sim/AsyncFlow was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.
About this page
- The score is its most recent published measurement, taken on 22 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
- Measured at commit f47bc9392ce95aa9f2698b8decef81b1c5966eb5 — the exact code this score is about.
- Scored under rubric-2026.09.15 — the same rubric and the same method as every other entry in this index.
- Measured by watchdog.canine.dev using codehealth-analyzer preprod-821afab8930d.