Skip to main content

elmulator: Python package

A pure-standard-library ELM327 TCP server and scenario validator. No third-party dependencies. Python 3.9+.

Install

pip install elmulator
# or from a checkout of this repo:
pip install -e .

If the elmulator command is not on your PATH after installing (pip prints a warning when the scripts directory is not on PATH), use python -m elmulator instead. It works the same way, for example python -m elmulator self-test.

CLI

elmulator serve SCENARIO [--host H] [--port N] [--echo on|off|scenario] \
                         [--split a,b,c] [--latency-ms N] [--jitter-ms N] [--seed N]
elmulator validate [PATHS...]     # files or dirs; defaults to the bundled examples
elmulator self-test               # in-process loopback smoke test

serve prints LISTENING <port> on stdout once bound (--port 0 picks a free port) and logs activity to stderr. Each client gets its own scenario cursor state.

Library

from elmulator import Scenario, serve
import argparse

scenario = Scenario.from_path("scenarios/p0420_basic.scenario.json")
args = argparse.Namespace(host="127.0.0.1", port=0, echo="scenario",
                          split=None, latency_ms=0, jitter_ms=0, seed=0)
serve(args, scenario)   # blocking; pass ready_event/stop_event for threaded use

The matching, echo, splitting, and jitter semantics are identical to the Swift engine; the conformance suite proves byte-for-byte parity.

Test

pip install pytest
pytest -q

Metadata

Release files for elmulator 0.3.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for elmulator 0.3.2
File Size Uploaded
elmulator-0.3.2.tar.gz 13.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for elmulator 0.3.2
File Interpreter ABI Platform
elmulator-0.3.2-py3-none-any.whl Python 3 none any Details

Total release size: 28.8 kB

Release files / elmulator-0.3.2.tar.gz

Download URL elmulator-0.3.2.tar.gz
Size 13.1 kB
Tags Source
SHA-256 checksum
How to use checksums
35e577f6e7b58b9151de4203aeb7db4bddf5c9e70eb2579f5b2ee746ab40c26b
BLAKE2b-256 checksum
How to use checksums
5fb2a37bd29192f5dd2475ef1fffd0e5ea95effabd087396187efa1e85770454
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 13, 2026.

Transparency log

Release files / elmulator-0.3.2-py3-none-any.whl

Download URL elmulator-0.3.2-py3-none-any.whl
Size 15.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
3172e6e36f051c0e001573f0abe43135f6e9b84c239dc870be5ad9ce2c3fd250
BLAKE2b-256 checksum
How to use checksums
e2096021c855900308a67d91efe73b98ede574753414f958c910703bd743e37c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 13, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.3.2 This release

2 release files

0.3.1

2 release files

0.3.0

2 release files

0.2.0

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page