djangospice-framework
Application Runtime Framework for building Django apps
djangospice-framework is the application runtime for building modular Django applications.
It is designed to provide a consistent foundation for building large Django application ecosystems without repeatedly implementing the same infrastructure in every application.
Why djangospice-framework?
Large Django projects often accumulate infrastructure that gets duplicated across applications.
For example, individual applications may independently implement:
- Base models
- Event dispatching
- Job handling
- File handling
- Import/export pipelines
- Realtime broadcasting
- Common service abstractions
djangospice-framework provides these capabilities as a shared runtime.
This gives applications a common architecture and allows modules to remain focused on their actual domain.
Design goals
djangospice-framework is designed around several principles:
- Reusable — common functionality should be implemented once.
- Modular — functionality should be composed through independent components.
- Extensible — applications should be able to replace or extend framework behavior.
- Django-native — use Django's existing ecosystem rather than reinventing it.
- Developer-friendly — common application infrastructure should require minimal boilerplate.
Requirements
- Python 3.12+
- Django 5.0+
Installation
Install djangospice-framework from PyPI:
pip install djangospice-framework
Basic Usage
Once installed, djangospice-framework components can be imported by Django applications and modules.
For example, using the common model infrastructure:
from djangospice_framework.db.models import BaseModel
class Customer(BaseModel):
name = models.CharField(max_length=255)
The exact capabilities available depend on the components being used by the application.
Core Components
djangospice-framework is organized around reusable infrastructure rather than business-domain applications.
Database and Models
Common Django model abstractions provide a consistent foundation for application models.
from djangospice_framework.db.models import BaseModel
The database layer is intended to eliminate repetitive model infrastructure while preserving normal Django ORM behavior.
Events
The event system provides a decoupled mechanism for applications to communicate.
Instead of tightly coupling one application component to another, a component can dispatch an event and allow listeners to react to it.
Conceptually:
Application Action
│
▼
Event
│
├── Listener
├── Listener
└── Listener
This allows functionality such as notifications, auditing, integrations, and background processing to be attached without modifying the original application logic.
Broadcasting and Realtime Communication
The runtime provides abstractions for broadcasting application events and data to users or groups.
For example:
Broadcast.everyone(...)
or:
Broadcast.user(user, ...)
This infrastructure can be used by applications that need realtime updates through WebSockets or other supported transports.
Async Support
The runtime provides common abstractions for asynchronous application functionality.
This allows modules to use async operations where appropriate while keeping common infrastructure in one place.
Files
djangospice-framework provides common abstractions for file-related functionality, allowing applications to work with files without repeatedly implementing storage and file-handling patterns.
Imports and Exports
Reusable import/export infrastructure allows applications to implement data exchange consistently.
Typical use cases include:
- CSV imports
- Spreadsheet imports
- Data exports
- Bulk operations
- Integration pipelines
Application Modules
djangospice-framework is not intended to be a standalone business application.
Instead, it provides the runtime used by applications and modules.
For example:
djangospice-framework
│
├── billing
├── notification
├── workflow
├── documents
├── helpdesk
├── CRM
├── workforce
Each application can depend on the common runtime while retaining responsibility for its own domain.
This keeps domain logic out of the framework.
Example
A module can build its domain logic on top of djangospice-framework:
from djangospice_framework.db.models import BaseModel
class Invoice(BaseModel):
number = models.CharField(max_length=50, unique=True)
amount = models.DecimalField(
max_digits=12,
decimal_places=2,
)
The module can then use other djangospice-framework infrastructure for events, notifications, UI, HTTP responses, tables, files, and other common functionality.
The result is a module that contains primarily business/domain logic, rather than infrastructure boilerplate.
License
This package is licensed under the MIT License.
See LICENSE for the full license text.
Metadata
Release files for djangospice-framework 0.3.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 | Provenance | Actions |
|---|---|---|---|---|
| djangospice_framework-0.3.0.tar.gz | 68.1 kB | With provenance | Details for djangospice_framework-0.3.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| djangospice_framework-0.3.0-py3-none-any.whl | Python 3 | none | any | Details for djangospice_framework-0.3.0-py3-none-any.whl |
Total release size: 176.1 kB
Release files / djangospice_framework-0.3.0.tar.gz
| Download URL | djangospice_framework-0.3.0.tar.gz |
|---|---|
| Size | 68.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
f131bc711e228b24517518dc92aa532020ce56efbf7b3aa298e1865616c5df20
|
|
BLAKE2b-256 checksum How to use checksums |
c408bd4087ff1311e0d47679ec6680e78203c97d8827eaed857ad7db13ada534
|
| 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 10, 2026.
Transparency logRelease files / djangospice_framework-0.3.0-py3-none-any.whl
| Download URL | djangospice_framework-0.3.0-py3-none-any.whl |
|---|---|
| Size | 108.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
212f591f55349cc480f8e0c8ae87a3fb844cf0a6cf1d0ad6240a93e98e01fa4d
|
|
BLAKE2b-256 checksum How to use checksums |
a02e5882c1c255511b3705f074fe989c9ed36ee2e8db5c2a4a11a5e7f99da9d9
|
| 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 10, 2026.
Transparency logSecurity for djangospice-framework 0.3.0
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.
Full provenance
All 2 files in this release have been uploaded with provenance metadata.
Attestation for djangospice_framework-0.3.0.tar.gz
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 10, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.