Arclith
Python 3.13 framework for building microservices with Hexagonal Architecture and Clean Architecture.
Arclith provides reusable domain models, use cases, repositories, adapters, FastAPI/FastMCP bootstrap, configuration, probes, and service wiring.
Canonical Service Layout
Arclith applications should use a namespaced src/<package>/... layout. This keeps imports explicit, avoids top-level package collisions, and matches how the project is built and tested.
src/my_service/
domain/
application/
adapters/
infrastructure/
config/
tests/
main.py
The current convention is exposed by the framework:
from arclith import canonical_project_layout
layout = canonical_project_layout("my_service")
print(layout.domain) # src/my_service/domain
Project Links
- Repository: karned-rekipe/arclith
- Functional sample: karned-rekipe/_sample
- GitHub Project: Arclith backlog
- Issues: Arclith issues
- PyPI: arclith
Installation
pip install arclith
Optional dependencies
pip install "arclith[mongodb]"
pip install "arclith[duckdb]"
pip install "arclith[fastapi]"
pip install "arclith[mcp]"
pip install "arclith[all]"
Development
uv sync
uv run pytest
License
Apache 2.0 — see LICENSE.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file arclith-0.10.0.tar.gz.
File metadata
- Download URL: arclith-0.10.0.tar.gz
- Upload date:
- Size: 316.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
uv/0.12.1 {"installer":{"name":"uv","version":"0.12.1","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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b934980f0427cff3e2406e881cb726a6d92fdcd5c84e4dee6a331096e34bfefb
|
|
| MD5 |
cd7598e16c7f42c46143dda0136f669f
|
|
| BLAKE2b-256 |
0add0f7fcb64554cefc7514ce78ea723bcb74fb9042a3f1dd5094a1d80b7d694
|
File details
Details for the file arclith-0.10.0-py3-none-any.whl.
File metadata
- Download URL: arclith-0.10.0-py3-none-any.whl
- Upload date:
- Size: 76.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
uv/0.12.1 {"installer":{"name":"uv","version":"0.12.1","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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6fbfb29bd994f2d1d18ed076bd80430294d03679f87e9c609496e8c69399bc70
|
|
| MD5 |
acfc6927824fdeeee61616ea5c93e4f4
|
|
| BLAKE2b-256 |
361cb618cedd65a755386c9b4b4ac89161c8523050e8e7f73222e494c788990c
|