Skip to main content

A Python tool for enforcing and visualizing software architecture.

Project description

Pacta

Architecture Insights, Governance & Versioned Design

PyPIDocsIssues

PyPI - Version PyPI - Python Version GitHub License


Warning: Experimental. Expect breaking changes until release 0.1.0

Pacta turns software architecture into versioned, queryable data — so teams can see, compare, and reason about architectural change over time, not just block violations.

pip install pacta

Pacta Demo

Supported languages:

  • Python
  • Java (coming soon)
  • Go (coming soon)
  • C# (coming soon)

Why?

Codebases rot. Architecture degrades through small changes no one tracks. Pacta turns architecture into something measurable, reviewable, and enforceable — catching drift early, not months later.

What it does

  • Architecture snapshots — version your architecture like code
  • History & trends — track how dependencies, coupling, and violations evolve over time
  • Diffs — compare architectural states like Git commits
  • Metrics & insights — nodes, edges, layers, instability, drift
  • Rules & governance — express architectural intent and enforce it incrementally
  • Baseline mode — govern change without being blocked by legacy debt

Think of Pacta like Git for architecture

Git Pacta
git add pacta snapshot save — capture an architectural snapshot
git commit --verify pacta check — evaluate rules against a snapshot
git commit pacta scan — snapshot + check in one step
git log pacta history — timeline and trends of architectural states
git diff pacta diff — compare two snapshots
branch protection rules.pacta.yml — governance that prevents drift

See the Getting Started guide for a full walkthrough.

Docs

Roadmap (short)

  • Open-source CLI and analysis engine
  • Content-addressed snapshots with history tracking
  • Trend analysis with chart export
  • Architecture visualization (Mermaid, D2)
  • Health metrics (drift score, instability)
  • Future: Architecture Intelligence Layer:
    • Cross-repository insights
    • Historical trend analysis
    • Team-level governance and reporting

License

Apache-2.0. See LICENSE.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pacta-0.0.6.tar.gz (880.1 kB view details)

Uploaded Source

Built Distribution

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

pacta-0.0.6-py3-none-any.whl (103.9 kB view details)

Uploaded Python 3

File details

Details for the file pacta-0.0.6.tar.gz.

File metadata

  • Download URL: pacta-0.0.6.tar.gz
  • Upload date:
  • Size: 880.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for pacta-0.0.6.tar.gz
Algorithm Hash digest
SHA256 aef716469ec236f6a8940e538766ad96f5ca6b834297dc186c0e49e6ea055077
MD5 ce588bf8a755c2f03ad8d7f0890e5e29
BLAKE2b-256 f20c3b2a1b1952a83ca0e7ec0bc4237d7b3dba80e1915b4d976539c15ed13168

See more details on using hashes here.

Provenance

The following attestation bundles were made for pacta-0.0.6.tar.gz:

Publisher: publish.yaml on akhundMurad/pacta

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pacta-0.0.6-py3-none-any.whl.

File metadata

  • Download URL: pacta-0.0.6-py3-none-any.whl
  • Upload date:
  • Size: 103.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for pacta-0.0.6-py3-none-any.whl
Algorithm Hash digest
SHA256 febd6a5afa4a50a4d320f7fd20b9f095206e79347340f48e6a4be63b5d871c14
MD5 0b909dcfc4f67575015bb0e843981c46
BLAKE2b-256 321912f9718fdbde220cc87c15f4a54431a50746001200fa3b5a3cc7136c25ab

See more details on using hashes here.

Provenance

The following attestation bundles were made for pacta-0.0.6-py3-none-any.whl:

Publisher: publish.yaml on akhundMurad/pacta

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page