Metadata-Version: 2.5
Name: sandloom
Version: 0.7.0a2
Summary: Python backend framework for AI-driven development with enforced module boundaries and pluggable infrastructure.
Project-URL: Homepage, https://sandloom.dev/
Project-URL: Documentation, https://sandloom.dev/docs/
Project-URL: Repository, https://github.com/Sandloom-dev/sandloom
Project-URL: Issues, https://github.com/Sandloom-dev/sandloom/issues
Project-URL: Changelog, https://github.com/Sandloom-dev/sandloom/blob/main/packages/sandloom/CHANGELOG.md
Author: Vasyl Cherniavskyi
License-Expression: Apache-2.0
License-File: LICENSE
License-File: NOTICE
Classifier: Development Status :: 3 - Alpha
Requires-Python: >=3.11
Requires-Dist: aiohttp<3.15,>=3.14.5
Requires-Dist: alembic<2,>=1.20.0
Requires-Dist: argon2-cffi<26,>=25.1.0
Requires-Dist: asyncpg<0.33,>=0.32.0
Requires-Dist: certifi>=2026.10.19
Requires-Dist: cryptography<51,>=50.0.2
Requires-Dist: fastapi<0.137,>=0.136.3
Requires-Dist: gunicorn<27,>=26.2.0
Requires-Dist: httpx<0.29,>=0.28.1
Requires-Dist: jsonschema<5,>=4.26.0
Requires-Dist: msgpack<2,>=1.2.3
Requires-Dist: orjson<4,>=3.13.0
Requires-Dist: prometheus-client<0.27,>=0.26.0
Requires-Dist: psycopg2-binary<3,>=2.9.11
Requires-Dist: pydantic-settings<3,>=2.16.1
Requires-Dist: pydantic<2.15,>=2.14.1
Requires-Dist: pyjwt<3,>=2.15.1
Requires-Dist: python-dotenv<2,>=1.2.4
Requires-Dist: sqlalchemy[asyncio]<2.2,>=2.1.4
Requires-Dist: starlette<1.7,>=1.3.1
Requires-Dist: uvicorn-worker<0.5,>=0.4.0
Requires-Dist: uvicorn[standard]<1,>=0.54.0
Provides-Extra: celery
Requires-Dist: celery[redis]<6,>=5.6.3; extra == 'celery'
Provides-Extra: check
Requires-Dist: pyyaml<7,>=6.0.2; extra == 'check'
Provides-Extra: fast
Requires-Dist: jsonschema-rs<0.60,>=0.59.0; extra == 'fast'
Requires-Dist: redis[hiredis]<6,>=5.2.1; extra == 'fast'
Provides-Extra: redis
Requires-Dist: redis<6,>=5.2.1; extra == 'redis'
Provides-Extra: sentry
Requires-Dist: sentry-sdk<3,>=2.72.0; extra == 'sentry'
Provides-Extra: standard
Requires-Dist: celery[redis]<6,>=5.6.3; extra == 'standard'
Requires-Dist: redis<6,>=5.2.1; extra == 'standard'
Requires-Dist: sandloom-billing<0.8,>=0.7.0a2; extra == 'standard'
Requires-Dist: sandloom-identity<0.8,>=0.7.0a2; extra == 'standard'
Requires-Dist: sandloom-tenancy<0.8,>=0.7.0a2; extra == 'standard'
Provides-Extra: testing
Requires-Dist: pytest-asyncio<2,>=1.4.0; extra == 'testing'
Requires-Dist: pytest-xdist<4,>=3.8.0; extra == 'testing'
Requires-Dist: pytest<10,>=9.1.1; extra == 'testing'
Description-Content-Type: text/markdown

# Sandloom

**Python backend framework for AI-driven development.**

Build with people and AI agents while the framework enforces module boundaries,
owns transactions and provides shared mechanisms for authorization, tenancy,
event delivery and idempotency.

## Why Sandloom

- **AI-driven development:** a consistent module structure, typed contracts,
  CLI scaffolding, agent instructions and executable quality gates keep changes
  scoped as the application grows.
- **Enforced module boundaries:** business modules communicate through typed
  events and contracts. Architecture checks reject cross-module imports.
- **Pluggable infrastructure:** application modules use capability contracts
  instead of raw backend clients. Configure compatible registered drivers or
  implement adapters without spreading infrastructure SDKs through business code.
  PostgreSQL and Redis are the documented production backends.
- **Monolith to services:** deploy the same business modules together or in
  separate services using module selection and service bindings. Moving existing
  data to a module's own database is a separate offline extraction step.
- **Built-in mechanisms:** transaction ownership, one writer per request,
  authorization rechecks before commit, tenant isolation, a transactional outbox,
  durable consumers and idempotent commands.

## Install and create an application

Requires Python 3.11+, [uv](https://docs.astral.sh/uv/) and Docker for local
PostgreSQL and Redis services. Sandloom is an alpha; `--pre` allows pip to select
its prerelease packages.

```bash
python -m pip install --pre "sandloom[standard]"
sandloom new myapp --with identity,tenancy,billing
```

Follow the printed next steps to install application dependencies, start local
services, run checks and migrations, and launch the API.

The `standard` extra includes Redis, Celery and the separate `sandloom-identity`,
`sandloom-tenancy` and `sandloom-billing` packages. Install `sandloom` alone for
the kernel, public `sandloom.sdk`, shared contracts, CLI and composition root.
Other extras: `redis`, `celery`, `fast`, `check`, `testing` and `sentry`.

## Alpha status

Sandloom is under active development. Review the compatibility policy and release
notes before upgrading; a minor version in the `0.x` series may introduce
breaking changes. The framework's documented guarantees have specific scopes;
consult the guarantee reference for their mechanisms and limits.

## Links

- [Source and issue tracker](https://github.com/Sandloom-dev/sandloom)
- [Documentation](https://github.com/Sandloom-dev/sandloom/tree/main/docs)
- [Examples](https://github.com/Sandloom-dev/sandloom/tree/main/examples)
- [Compatibility policy](https://github.com/Sandloom-dev/sandloom/blob/main/docs/contributing/versioning.md)

## License

Apache-2.0. Copyright 2026 Vasyl Cherniavskyi.
See [LICENSE](https://github.com/Sandloom-dev/sandloom/blob/main/LICENSE) and [NOTICE](https://github.com/Sandloom-dev/sandloom/blob/main/NOTICE).
