Skip to main content

Pure-Python ports of the Rails Solid stack: database-backed background jobs (queue), caching (cache), pub/sub (channel), and an append-only audit log. No Redis required. This is a meta-package: pick modules via extras — firm-stack[queue], firm-stack[cache], firm-stack[channel], firm-stack[audit], or firm-stack[all].

Project description

firm-stack

Pure-Python ports of the Rails Solid stack — database-backed, no Redis required.

firm-stack is the meta-package for firm: it installs the modules you pick via extras, in one shot. Each component is also published independently, so you can just as well install only what you need:

Component Package Ports
Background jobs firm-queue Solid Queue
Cache store firm-cache Solid Cache
Pub/sub firm-channel Solid Cable
Audit log firm-audit
Web dashboard firm-ui Mission Control

Everything runs on SQLite, PostgreSQL, or MySQL via SQLAlchemy.

Install

firm-stack is extras-only — a bare pip install firm-stack installs no modules, so always pick at least one:

pip install "firm-stack[queue]"              # background jobs
pip install "firm-stack[queue,cache]"        # jobs + caching
pip install "firm-stack[ui]"                 # web dashboard (pulls all four modules)
pip install "firm-stack[all]"                # everything, all drivers and integrations

# or skip the meta-package and install components directly:
pip install firm-queue
pip install "firm-cache[encryption]"

Imports are always under the firm namespace regardless of which packages you installed:

import firm.queue
from firm.cache import Cache
from firm.channel import Channel

Why "firm-stack" and not "firm"? The PyPI name firm is held by a dormant, release-less registration; a PEP 541 name-transfer request is pending. If it is granted, the meta-package will also be published as firm and firm-stack will remain as a compatible alias.

See the project README and documentation for full usage.

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

firm_stack-0.1.0.tar.gz (3.6 kB view details)

Uploaded Source

Built Distribution

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

firm_stack-0.1.0-py3-none-any.whl (4.2 kB view details)

Uploaded Python 3

File details

Details for the file firm_stack-0.1.0.tar.gz.

File metadata

  • Download URL: firm_stack-0.1.0.tar.gz
  • Upload date:
  • Size: 3.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.27 {"installer":{"name":"uv","version":"0.11.27","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for firm_stack-0.1.0.tar.gz
Algorithm Hash digest
SHA256 7d49fbd7e51edbae5ea998d1fad8b381b041ba3edd7f8b3425d45278ed51e10b
MD5 06072422c29f31a62492dcf891e61f30
BLAKE2b-256 c600c4cc32f8933a014e3534a09c3517fd008562c5ff42cb36ba6e7110c0187f

See more details on using hashes here.

File details

Details for the file firm_stack-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: firm_stack-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 4.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.27 {"installer":{"name":"uv","version":"0.11.27","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for firm_stack-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 1c5ad3714b6e58c583f49e510a9d0f86b129feb14b3012f5f3c5a574bfacc660
MD5 e95b9f132e4c63ba661730e4980599f9
BLAKE2b-256 2d4bf1774db06953ebacdd330c62e489c9829f55547fd28cc0c604f4a9450f6e

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