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.5.tar.gz (736.8 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.5-py3-none-any.whl (99.0 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: pacta-0.0.5.tar.gz
  • Upload date:
  • Size: 736.8 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.5.tar.gz
Algorithm Hash digest
SHA256 4ab2da5fe5e923915b962106ed80073f98d1966f0f2b0a1c33186ce4c3dd378c
MD5 4c5ab3bb229f1db37ac3fc6689e86148
BLAKE2b-256 5f89523601d22c774d7059dde8cc808413f7b16575192f0524cf326b323ce14e

See more details on using hashes here.

Provenance

The following attestation bundles were made for pacta-0.0.5.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.5-py3-none-any.whl.

File metadata

  • Download URL: pacta-0.0.5-py3-none-any.whl
  • Upload date:
  • Size: 99.0 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.5-py3-none-any.whl
Algorithm Hash digest
SHA256 368d9a941d6d19eb700e8b0cb1c2f2257cca6a0340cce6b0f279b63a1477fce7
MD5 119bc4f3e2f2397328059ddff9584609
BLAKE2b-256 4f0d876d7b1a4d44a2bad4d8a875c45fa5b2909f3a5502cbc91fa54f8ade944e

See more details on using hashes here.

Provenance

The following attestation bundles were made for pacta-0.0.5-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