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 Distribution

speedi-0.1.0.tar.gz (11.5 kB view details)

Uploaded Source

Built Distribution

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

speedi-0.1.0-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.1.0.tar.gz.

File metadata

  • Download URL: speedi-0.1.0.tar.gz
  • Upload date:
  • Size: 11.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: maturin/1.8.1

File hashes

Hashes for speedi-0.1.0.tar.gz
Algorithm Hash digest
SHA256 573de1e2f0b3c5349850b70be36dd1f975c69116806f25143bab0f38068278ed
MD5 8ae319678038dfcae411e59dca22029d
BLAKE2b-256 949ed9239b88a6a0fd9ea61696442d8100c9f8f7df0f7c30bb1936a0eae76e56

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for speedi-0.1.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 12517c27a82409a53d579ac0a4dad1ae78f72d982166ee5800142779f78ae525
MD5 e2d392442d705d1b7b437b48c7588bd4
BLAKE2b-256 2b7f04577b639c980b5125a9112343a7d9d10926846a4f0ea08f3981941484cf

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