Skip to main content

Speedi – A typed, stateful, high-performance CLI framework for Python

Project description

Speedi

A typed, stateful, high-performance CLI framework for Python.

  • Declarative, Typer-like API
  • Type-hint aware parsing and validation (Satya-ready stubs)
  • Stateful session (in-memory, optional persistence)
  • Async-first with simple parallel primitives
  • Optional Rust core (PyO3) scaffold

Quickstart (local, no install)

python examples/speedi_example.py --help
python examples/speedi_example.py greet Alice 30 --loud

Example output:

Hello Alice, age 30
HELLO ALICE

Session (optional persistence)

python examples/speedi_example.py login alice
python examples/speedi_example.py whoami

To persist session between runs, pass --persist to commands that mutate session or set env SPEEDI_PERSIST=1.

Session file path (if persisted): ~/.speedi/session.json

Project Layout

  • speedi/ – core Python package
    • app.pyApp and command system
    • session.py – session management
    • concurrency.pyparallel helper
    • validation.py – type validation stubs
    • engine.py – optional Rust bridge (stub)
    • __init__.py – exports
  • examples/ – example CLI
  • rust/speedi_core/ – optional Rust core (PyO3) scaffold
  • tests/ – minimal tests

Rust core (optional)

A PyO3 stub is included under rust/speedi_core. It's not required to run the Python example.

Colors

Speedi supports colored output via Rich with graceful fallback.

  • Install extras: pip install -e .[rich]
  • Auto-enabled on TTY; force with SPEEDI_COLOR=1 or disable with SPEEDI_COLOR=0.
  • Try: python examples/speedi_example.py colors

Agent guide

See AGENT.md for integrating Speedi into your app/agent: commands, session, concurrency, and color helpers.

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

speedi-0.0.1-cp312-cp312-macosx_11_0_arm64.whl (228.1 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

File details

Details for the file speedi-0.0.1-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for speedi-0.0.1-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 de5da19255f62327d79b3654ea88318066a9f33afaed86ac6141a6d996c78c43
MD5 d792e0e919eb42a3ff827aef5fcc75c3
BLAKE2b-256 ae46651e6bb5f7b550ddb99d5417793b473233911f126f4054eb07af2d5244b6

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page