fast-platform
Single installable distribution (pip install fast-platform) that bundles many former standalone fast_* modules unchanged at import time (flat top-level imports such as from notifications import …, from db import …).
Logical organization is defined by the package taxonomy in src/fast_platform/taxonomy.py. Imports stay flat under src/; the taxonomy is used for docs, tests layout, and navigation.
Package taxonomy
Each top-level name under src/ belongs to exactly one section (PackageSection). The canonical mapping is PACKAGE_TO_SECTION in fast_platform.taxonomy.
| Section | Meaning |
|---|---|
| core | Config, DTOs, errors, helpers, orchestration services |
| security | Crypto, API keys, identity, secret backends |
| persistence | SQLAlchemy + multi-backend datastores |
| data_platform | Search, vectors, object storage, cache |
| messaging | Queues, Kafka, jobs, events, notifications, webhooks |
| realtime | Channels, streams, WebRTC |
| integrations | LLM, payments, media, analytics, admin |
| operations | Observability, OpenTelemetry, flags, tenancy, resilience, API versioning |
Packages by section
| Section | Packages |
|---|---|
| core | configuration, dtos, errors, utils, service, fast_platform |
| security | security, secrets, identity |
| persistence | db, datastores |
| data_platform | search, vectors, storage, cache |
| messaging | kafka, queues, events, jobs, notifications, webhooks |
| realtime | channels, streams, webrtc |
| integrations | llm, payments, media, analytics, admin |
| operations | observability, otel, resilience, tenancy, versioning, features |
Use in code:
from fast_platform.taxonomy import section_of, PackageSection
section_of("notifications") # PackageSection.MESSAGING
Layout: src/ vs tests/
src/— flat top-level packages (configuration/,notifications/, …) so existing imports remain stable.tests/— mirrors the taxonomy:tests/<section_folder>/<package>/. Section folder names come fromSECTION_TEST_FOLDERintaxonomy.py(e.g.core,persistence,data_platform). The security section usessec(notsecurity) so thesecuritypackage can live attests/sec/security/without a path collision.
Example: tests for utils live under tests/core/utils/; tests for notifications under tests/messaging/notifications/.
Highlights (by import name)
| Import | Role |
|---|---|
configuration |
JSON config loaders + Pydantic DTOs per subsystem |
dtos |
Shared Pydantic DTOs (IDTO base) |
errors |
Structured HTTP-oriented exceptions (BadInputError, NotFoundError, …) |
notifications |
Email/SMS/push templates, fan-out, idempotency, preferences (pip install fast-platform[jinja2] for templating extras) |
resilience |
Circuit breakers, retries, bulkheads |
versioning |
API versioning (VersionedAPIRouter, VersioningMiddleware, path/header/query strategies) |
features |
In-app feature flags, rollout, targeting |
channels |
Real-time hub, Redis/Kafka backends, presence, ACLs, metrics |
db |
SQLAlchemy engine, sessions, DBDependency |
datastores |
IDataStore adapters (Redis, Mongo, ES, …) |
observability |
Logging, metrics, tracing, audit, OTLP |
admin |
Admin API router (users, roles, audit log), generic SQLAlchemy CRUD routers |
queues |
Queues (DLQ, envelope, backends) |
jobs |
Background jobs |
storage |
Object storage (S3, GCS, Azure) |
secrets |
Secret backends + cache (Vault, AWS, GCP; not the stdlib secrets module) |
vectors |
Vector stores |
tenancy |
Multi-tenant context |
webhooks |
Webhook signing / delivery |
webrtc |
WebRTC signaling |
llm |
LLM providers, tools, streaming |
kafka |
Kafka producer/consumer, outbox |
identity |
OAuth/OIDC, JWKS, API keys |
media |
Uploads, variants, presigned URLs |
payments |
Payment gateways, webhooks, SCA |
search |
Meilisearch, Typesense, OpenSearch |
security |
API keys, inbound webhooks, field encryption |
Install: pip install fast-platform
Optional backends: e.g. pip install fast-platform[async,otel,rabbitmq,s3,openai,meilisearch,pillow].
pyfastmvc depends on this wheel for these modules instead of many separate distributions.
Metadata
Release files for fast-platform 1.6.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| fast_platform-1.6.0.tar.gz | 301.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| fast_platform-1.6.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 772.8 kB
Release files / fast_platform-1.6.0.tar.gz
| Download URL | fast_platform-1.6.0.tar.gz |
|---|---|
| Size | 301.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
62918fd59c2de12d51c921b1dd54d03e53c1c80c6a76d3633ad20abd2d1d178c
|
|
BLAKE2b-256 checksum How to use checksums |
80c7d36955eac0cd7548a8c7f0ce4ad2ae50f98039f7287b900ef8222a1f5fad
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.7
|
Release files / fast_platform-1.6.0-py3-none-any.whl
| Download URL | fast_platform-1.6.0-py3-none-any.whl |
|---|---|
| Size | 471.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
1dcb32be5bd3569162d5f80f3de93ff93d3a31d0710758a3e344eee9207ea1ef
|
|
BLAKE2b-256 checksum How to use checksums |
94d5b320e346f98a4ab68bba0d06265cd633a78252a5032f160089ae8cba5b2c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.7
|