Skip to main content

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

Installation

pip install arclith

Quickstart

Pour créer un projet concret avec la CLI, lancer API/MCP/probes, puis faire évoluer les adapters :

Pour poser uniquement le cœur métier minimal après création d'un projet :

arclith-cli add-entity ShoppingItem
arclith-cli add-usecase PlanShoppingList

Ces commandes ne génèrent pas de CRUD ni de wiring adapter par défaut.

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[opentelemetry]"
pip install "arclith[all]"

Pour ajouter LangGraph et LangSmith à un projet généré:

uv add "arclith[langgraph]"
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 génère langgraph.json, le point d'entrée LangGraph et le câblage Arclith.langgraph(...). Le code spécifique 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

arclith-0.13.0.tar.gz (350.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

arclith-0.13.0-py3-none-any.whl (85.2 kB view details)

Uploaded Python 3

File details

Details for the file arclith-0.13.0.tar.gz.

File metadata

  • Download URL: arclith-0.13.0.tar.gz
  • Upload date:
  • Size: 350.5 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

Hashes for arclith-0.13.0.tar.gz
Algorithm Hash digest
SHA256 2ab74ac60d69336ce80f06a9cab98959a82236ec19077a44fe8cb57192ef46df
MD5 d9e65e54b13c3a559a8779fb56cbea1d
BLAKE2b-256 22da614ccf1fc1d260add31af36bdab5b2684098062362b608c511d22b80a2fc

See more details on using hashes here.

File details

Details for the file arclith-0.13.0-py3-none-any.whl.

File metadata

  • Download URL: arclith-0.13.0-py3-none-any.whl
  • Upload date:
  • Size: 85.2 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

Hashes for arclith-0.13.0-py3-none-any.whl
Algorithm Hash digest
SHA256 27bc71d0f61f6759267a2c1618f65210283c1eaf7404ed859fa6df05e6b3158a
MD5 b47f37e6c813cdc860380e6b6067d4d9
BLAKE2b-256 6eb350b80ca69d1d61a02d5dad643b96e7f46be4ecefc1dd8b1dd6ecf393d3d1

See more details on using hashes here.

Release history Release notifications | RSS feed

0.24.0

2 files

0.23.0

2 files

0.22.0

2 files

0.21.0

2 files

0.20.0

2 files

0.19.0

2 files

0.18.0

2 files

0.17.0

2 files

0.16.0

2 files

0.15.0

2 files

0.14.0

2 files

This release

0.13.0 This release

2 files

0.12.0

2 files

0.11.0

2 files

0.10.0

2 files

0.9.0

2 files

0.8.2

2 files

0.8.1

2 files

0.8.0

2 files

0.7.1

2 files

0.7.0

2 files

0.6.1

2 files

0.6.0

2 files

0.5.0

2 files

0.4.0

2 files

0.3.0

2 files

0.2.0

2 files

0.1.0

2 files

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