Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

astroframe 筑穹

筑其基者,擎九霄穹

Universal plugin platform runtime — Protocol-based capability registration, subprocess sandbox (seccomp-bpf + Landlock + PEP 578 audit hooks), sigstore/GPG signature verification, and AST security scanning. All plugins run in isolated subprocess sandboxes.

Features

  • Plugin Discovery — entry_points-based discovery with manifest (astroframe-plugin.json) as single source of truth
  • Capability Registry — Protocol-typed capability groups (Processor, Exporter, ChatProvider, Transform, CLI subcommand, GUI page, etc.)
  • Four-Layer Security — S5 AST scanner → S9 seccomp-bpf syscall whitelist → S10 Landlock filesystem ACL → S8 PEP 578 audit hooks
  • Subprocess Sandbox — Every plugin runs in an isolated child process with IPC via multiprocessing.connection
  • Signature Verification — Sigstore / GPG plugin signature verification pipeline
  • Schema Validation — JSON Schema-based plugin config validation at load time
  • Lifecycle Management — LOADED → ENABLED → DISABLED → ERROR state machine with crash recovery and dependency cascade resolution
  • Fail-Closed — Any security mechanism failure → affected plugin unavailable, rest operate normally
  • Plugin Error Isolation — Engine always starts; single plugin failure blast radius limited to its capabilities

Install

pip install astroframe

With sigstore signature verification:

pip install "astroframe[sigstore]"

Quick Start

from astroframe import PluginRegistry, discover_plugins

# Discover plugins via entry_points
manifests = discover_plugins()

# Register and validate
registry = PluginRegistry()
registry.register_all(manifests)

# Lifecycle — load and enable
registry.load_all()
registry.enable_all()

Architecture

entry_points → manifest → AST scan → subprocess sandbox
                                       ├── seccomp-bpf (syscall whitelist)
                                       ├── Landlock (filesystem ACL)
                                       └── PEP 578 (audit hooks)

All plugins — including first-party consumers like astrocrawl — run through the same pipeline. No BUILTIN concept, no special-cased identity.

Plugin Manifest

Plugins declare themselves via astroframe-plugin.json:

{
  "name": "my-plugin",
  "version": "1.0.0",
  "group": "processor",
  "capabilities": [...],
  "entry_point": "my_plugin:factory",
  "config_schema": {...}
}

Entry point in pyproject.toml:

[project.entry-points."astroframe.plugins"]
my-plugin = "my_plugin:get_manifest_path"

Optional Dependencies

Extra Purpose
sigstore Sigstore-based plugin signature verification

License

Apache 2.0

Metadata

Release files for astroframe 0.1.0a1

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

Source distribution (sdist)

Source distribution for astroframe 0.1.0a1
File Size Uploaded
astroframe-0.1.0a1.tar.gz 77.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for astroframe 0.1.0a1
File Interpreter ABI Platform
astroframe-0.1.0a1-py3-none-any.whl Python 3 none any Details

Total release size: 161.1 kB

Release files / astroframe-0.1.0a1.tar.gz

Download URL astroframe-0.1.0a1.tar.gz
Size 77.8 kB
Tags Source
SHA-256 checksum
How to use checksums
8ea34bf0c3529d9ef92c4505a795fe5e1bee67b9a8b1f8cc4b4fd70067fd2965
BLAKE2b-256 checksum
How to use checksums
a755ae3aaca9fa4454dde74299a6d936e9caebdc176ff8998f6ee70fd4881fac
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 19, 2026.

Transparency log

Release files / astroframe-0.1.0a1-py3-none-any.whl

Download URL astroframe-0.1.0a1-py3-none-any.whl
Size 83.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
bafbd325c141e150e9e2cea09bbc718be2d8a6b94f2a29d38510191c3ab6e8a9
BLAKE2b-256 checksum
How to use checksums
4f29851c9f249ef30c1eaef8934e0a30afcb881ed1b7a2af3e1cbe0c4a4444ad
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 19, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.1.0a1 This release

2 release 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