Skip to main content

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)

Source distribution for djangospice-framework 0.3.0
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)

Table of built distributions (wheels) for djangospice-framework 0.3.0
File Interpreter ABI Platform Actions
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 log

Release 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 log

Security 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.

Select from 2 files

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 log

A 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.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page