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/LangGraph 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
Quickstart
Pour creer un projet concret avec la CLI, lancer API/MCP/probes, puis faire evoluer les adapters:
- Quickstart Arclith
- Quickstart agent Arclith from scratch
- Capacites standardisees
- CLI
- Sample fonctionnel
Optional dependencies
pip install "arclith[mongodb]"
pip install "arclith[duckdb]"
pip install "arclith[mariadb]"
pip install "arclith[fastapi]"
pip install "arclith[mcp]"
pip install "arclith[langgraph]"
pip install "arclith[all]"
arclith[langgraph] installe le socle local pour exposer un agent via LangGraph Studio et LangSmith.
Le chemin standard est ensuite:
arclith-cli add-adapter --capability agent --adapter langgraph
arclith-cli add-adapter --capability observability --adapter langsmith
uv run langgraph dev --no-browser --allow-blocking --port 2024
Arclith genere langgraph.json, le point d'entree LangGraph et le cablage Arclith.langgraph(...).
Le code specifique du projet reste dans src/<package>/adapters/inbound/langgraph/agent.py.
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.12.0.tar.gz.
File metadata
- Download URL: arclith-0.12.0.tar.gz
- Upload date:
- Size: 335.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
uv/0.12.2 {"installer":{"name":"uv","version":"0.12.2","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 |
3500734d92f228d9e1ec71853318a1ec3d2777021d68380418fcc1af57cc3d60
|
|
| MD5 |
6020e31e3bfb12d41fe834d80b477f49
|
|
| BLAKE2b-256 |
4dcae5fa2b05b4261dc197ac9dec76f06f2053edd6ff861b820bfc5a62568864
|
File details
Details for the file arclith-0.12.0-py3-none-any.whl.
File metadata
- Download URL: arclith-0.12.0-py3-none-any.whl
- Upload date:
- Size: 82.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
uv/0.12.2 {"installer":{"name":"uv","version":"0.12.2","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 |
b2a197be54f35e2e404f1f8d58bb3b1017057dae4d2cad322df9e8c64dcb5dc1
|
|
| MD5 |
aeda05af0b1ae60b76a4fd656c306fe1
|
|
| BLAKE2b-256 |
1e811095a22ad4a333021239d81eca61f968291b33d217793282950cb8cb3b61
|