Skip to main content

🛡️ Anchor Core (anchor-audit)

The Deterministic Runtime Governance & Compliance Kernel for Autonomous AI Systems.

PyPI Version License

Current release: 6.0.6 · Python 3.10–3.13

Anchor is a high-performance, dual-language (Rust/Python) infrastructure library designed to enforce strict regulatory invariants, architectural boundaries, and safety safeguards around autonomous AI agents and LLM application pipelines in real-time.

By executing compiled Abstract Syntax Tree (AST) query matchers and single-pass Deterministic Finite Automaton (DFA) regex sets, Anchor operates with zero-copy memory boundaries—designed to keep per-call overhead low. See benchmarks/bench_guard.py to measure it on your hardware.


🏎️ Core Architectural Horsepower

  • Fast static scanning: Rust backend engine utilizing parallel directory walking via rayon and memory-mapped files (memmap2).
  • Zero-Copy Memory Boundaries: Leverages PyO3 zero-copy buffer bridges to consume incoming network data frames straight from host ASGI server pools (like FastAPI) with zero heap allocation overhead.
  • Asymmetric Cryptographic Identity: Every compiled audit log is bundled into an tamper-evident Decision Audit Chain (DAC) block, sealed locally using Ed25519 asymmetric keys and verified via constant-time hashing (subtle::ConstantTimeEq).
  • Active Self-Healing Interception: Moves beyond passive post-mortem dashboards. If an active consumer agent drifts into an invariant violation, Anchor's runtime layer intercepts the thread, halts execution, and injects dynamic, domain-agnostic rerouting directives on the fly.

🏛️ Comprehensive Regulatory Scope

Anchor maps rules to the provisions they relate to (a pattern match is not a legal finding). Coverage includes:

  1. EU Artificial Intelligence Act (Regulation EU 2024/1689): Complete mapping from Chapter II Article 5 Prohibited Practices (subliminal manipulation, facial scraping safeguards) to Chapter III Articles 6–27 High-Risk System obligations (6-month log retention tracking under Art 12/19, Article 14 human override levers), stretching up to Article 99 turnover penalty metrics.
  2. U.S. Securities and Exchange Commission (SEC / FINRA): Hard automated boundaries protecting algorithmic trading setups under SEC Regulation SCI (System capacity loop circuit breakers), Exchange Act Rule 15c3-5 (Pre-trade credit and risk limit validation), and Cybersecurity Form 8-K outbound data exfiltration gates.
  3. Industry Frameworks: Built-in support for FINOS OSERA AI supply-chain resiliency blueprints, OWASP Top 10 LLM security controls, NIST AI RMF, and ISO/IEC 42001 standards.

📦 High-Velocity Installation

Deploy the compiled binary kernel straight into your production cluster workspace:

pip install anchor-audit

Anchor pulls in its runtime dependencies automatically (Click, HTTPX, PyYAML, cryptography, wrapt, GitPython and the tree-sitter grammars), so the anchor command is usable straight after install.

Optional extras:

pip install "anchor-audit[providers]"   # OpenAI, Anthropic, Groq, Cohere, Ollama, ...
pip install "anchor-audit[server]"      # FastAPI/ASGI gateway (anchor.app) + uvicorn
pip install "anchor-audit[dev]"         # pytest, black, mypy

The CLI, the @guard decorator and the static scanner need none of these extras.

Initialize your local asymmetric cryptographic repository identity:

anchor init

Run a parallel static code safety audit across your local workspace:

anchor check .

anchor check exits 0 when no findings meet the threshold, 1 when there are findings, and 2 on usage errors or when ANCHOR_REQUIRE_VERIFIED_GOVERNANCE=1 is set and the bundled rules cannot be verified, so it can gate CI directly.

anchor --version
anchor check . --severity blocker      # blocker | error (default) | warning | info
anchor check . --format json           # machine-readable report on stdout (or: markdown)

anchor init prompts interactively in a terminal; with no terminal (CI, Docker) or with --no-prompt it runs non-interactively.

Building from source

Prebuilt wheels need no toolchain. Installing from source (pip install . or an sdist on a platform without a wheel) compiles the Rust kernel and needs Rust 1.78 or newer (the committed Cargo.lock is lockfile v4) and a C toolchain.


🔌 Runtime Integration

Wrap a high-privilege agent routine or LLM invocation with a decorator. @guard only protects functions you wrap; unwrapped code is not covered.

from anchor import guard

@guard(domain="finance")
def execute_algorithmic_trade(order_payload):
    # If the autonomous agent tries to route an un-vetted market order,
    # Anchor audits the call payload before the function body runs and returns a BLOCKED_BY_ANCHOR directive on a match.
    return route_order_to_exchange(order_payload)

from anchor.guard import guard is the equivalent spelling if you prefer to import the decorator directly. Both are exercised by tests/test_readme_example.py.


🌐 The AnimusLab Institution Network

Anchor Core acts as the local spoke auditing engine that feeds seamlessly into the wider, unified decentralized coordination hub ecosystem:

Maintained by AnimusLab.


⚠️ Limitations

  • @guard (Layer 2) covers only the functions you decorate. Keyword/pattern checks can be rephrased around; treat Anchor as one deterministic layer in defense-in-depth.
  • Telemetry is off by default. Set ANCHOR_TELEMETRY=on to opt in; see docs/telemetry.md for exactly what is sent.
  • Static rules are pattern/AST based. Known detection gaps are tracked as xfail tests in tests/unit/test_detection_gaps.py.

  • Gateway. anchor.app fails closed: set ANCHOR_GATEWAY_TOKEN and send Authorization: Bearer <token>. Request bodies are limited to 1 MiB (ANCHOR_GATEWAY_MAX_BODY_BYTES). Bind to 127.0.0.1 unless it runs behind a trusted proxy. For local development only, ANCHOR_GATEWAY_ALLOW_UNAUTHENTICATED=1 disables the check.
  • Remote policies. extends: accepts https:// URLs only, refuses private and local addresses, and can be restricted with ANCHOR_POLICY_URL_ALLOWLIST.
  • Sandbox runtime. Downloaded runtime files are verified against pinned SHA-256 hashes before use.
  • Not legal advice. Anchor reports automated pattern and AST findings mapped to the provisions they relate to. A finding is not a legal determination, and a clean scan is not a compliance certification. References to OWASP, NIST, FINOS, OECD and regulators identify sources only and do not imply endorsement.
  • Reporting vulnerabilities: see SECURITY.md. Third-party licenses: THIRD_PARTY_LICENSES.md.

Metadata

Release files for anchor-audit 6.0.6

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for anchor-audit 6.0.6
File Size Uploaded Provenance Actions
anchor_audit-6.0.6.tar.gz 245.7 kB Without provenance Details for anchor_audit-6.0.6.tar.gz

Built distributions (wheels)

Table of built distributions (wheels) for anchor-audit 6.0.6
File Actions
anchor_audit-6.0.6-cp310-abi3-win_amd64.whl CPython 3.10 abi3 Windows x86-64 Details for anchor_audit-6.0.6-cp310-abi3-win_amd64.whl
anchor_audit-6.0.6-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.10 abi3 Linux glibc 2.17+ x86-64 Details for anchor_audit-6.0.6-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
anchor_audit-6.0.6-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.10 abi3 Linux glibc 2.17+ ARM64 Details for anchor_audit-6.0.6-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
anchor_audit-6.0.6-cp310-abi3-macosx_11_0_arm64.whl CPython 3.10 abi3 macOS 11.0+ ARM64 Details for anchor_audit-6.0.6-cp310-abi3-macosx_11_0_arm64.whl
anchor_audit-6.0.6-cp310-abi3-macosx_10_12_x86_64.whl CPython 3.10 abi3 macOS 10.12+ x86-64 Details for anchor_audit-6.0.6-cp310-abi3-macosx_10_12_x86_64.whl

Total release size: 8.1 MB

Release files / anchor_audit-6.0.6.tar.gz

Download URL anchor_audit-6.0.6.tar.gz
Size 245.7 kB
Tags Source
SHA-256 checksum
How to use checksums
e993851e1c1f85b331c829bfa777b5ccf5e708a93ce565da23749ede9a20d021
BLAKE2b-256 checksum
How to use checksums
fc8dc312dc147a7e7006bb75214bde6a0c73a3b985371d74671e3a883475b614
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / anchor_audit-6.0.6-cp310-abi3-win_amd64.whl

Download URL anchor_audit-6.0.6-cp310-abi3-win_amd64.whl
Size 1.4 MB
Tags CPython 3.10 Windows x86-64 abi3
SHA-256 checksum
How to use checksums
f88cd7448fa5e68b83879cf88f474218d9e948d08efe5b27ef3ec0341546a732
BLAKE2b-256 checksum
How to use checksums
e5ade9e6fd934a7cb5e475d7687f30e589184f0a8b394ec6a9df556dc37100ff
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / anchor_audit-6.0.6-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL anchor_audit-6.0.6-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 1.7 MB
Tags CPython 3.10 Linux glibc 2.17+ x86-64 abi3
SHA-256 checksum
How to use checksums
1a3d6b939651c5c88a5ee0f89be44fdb848aa37ef98cb67b41d5dd4ebac40cee
BLAKE2b-256 checksum
How to use checksums
c6db7858eac15d4f8294409444fab8f5848438397f2f2c16ef42658ff0bb416e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / anchor_audit-6.0.6-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL anchor_audit-6.0.6-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 1.7 MB
Tags CPython 3.10 Linux glibc 2.17+ ARM64 abi3
SHA-256 checksum
How to use checksums
bd54e2324dd8948dc2403a8355ba044b5701777309539c831986a1ea0158d394
BLAKE2b-256 checksum
How to use checksums
fcd138e9404154b4be6cbda60c4dcca70c8f70195c65604e5e2065b805e4e0b8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / anchor_audit-6.0.6-cp310-abi3-macosx_11_0_arm64.whl

Download URL anchor_audit-6.0.6-cp310-abi3-macosx_11_0_arm64.whl
Size 1.5 MB
Tags CPython 3.10 abi3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
7361720c8e2e8814039b74a919eb11b68e799f8ac85769cffdf176e0e62b391e
BLAKE2b-256 checksum
How to use checksums
e1c557f2e9ff8d3c4781a91aece0365edf17302a1b4b8762006055c2b1166eeb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / anchor_audit-6.0.6-cp310-abi3-macosx_10_12_x86_64.whl

Download URL anchor_audit-6.0.6-cp310-abi3-macosx_10_12_x86_64.whl
Size 1.6 MB
Tags CPython 3.10 abi3 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
60a9f50d6c4aa7f2294c4d02ba85f1439e54bb754c23a8bb323ac6bcb9004050
BLAKE2b-256 checksum
How to use checksums
6c80a39470bf1685e00f413eefe4167e2e12a088d7a6776b2bfbc9319531ce38
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Security for anchor-audit 6.0.6

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

6.0.6 This release

6 release files No provenance

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