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

Uploaded Python 3

File details

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

File metadata

  • Download URL: pacta-0.0.7.tar.gz
  • Upload date:
  • Size: 880.4 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.7.tar.gz
Algorithm Hash digest
SHA256 542566ddbeb7d5c9d2097680657ebf6b575253c6e87a4c286f69b57591e03b3c
MD5 e1e387c592b987b36994de5cf316098c
BLAKE2b-256 2d4556516ed6fbfeef2ff94b3d963fa8e706ad2c7c575a200e94e03c2659a0c2

See more details on using hashes here.

Provenance

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

Publisher: publish.yaml on pacta-dev/pacta-cli

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.7-py3-none-any.whl.

File metadata

  • Download URL: pacta-0.0.7-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.7-py3-none-any.whl
Algorithm Hash digest
SHA256 86fd573bcf34cfd98d3b72e63bab6c975d032cd2579da9f8806a587fd62651bd
MD5 eebb7e78094a119dbc699c9324e6b051
BLAKE2b-256 093f9f1b41dfa86b2ba31f4ccea78c1c47f188ff0cef26eb35a2050e41af8a43

See more details on using hashes here.

Provenance

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

Publisher: publish.yaml on pacta-dev/pacta-cli

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