Releases: aiperceivable/axum-apcore
Releases · aiperceivable/axum-apcore
Release 0.1.1
Changed
- Rebrand: aipartnerup → aiperceivable
Release 0.1.0
Initial release. Axum integration for the apcore AI-Perceivable Core ecosystem,
feature-aligned with fastapi-apcore.
Added
Core
AxumApcore— Unified entry point: init, scan, register, call, stream, exportApcoreSettings— Configuration fromAPCORE_*environment variables with validationap_handler!macro — Declarative route metadata registration at compile timeAxumApcoreError—thiserror-based error enum withIntoResponsefor Axum handlers
Context Extraction
ApContext— AxumFromRequestPartsextractor for apcoreContext<Value>RequestIdentity— Identity struct for auth middleware to inject into request extensionsAxumContextFactory— Creates apcore contexts from Axum request parts with W3Ctraceparentsupport
Scanning
NativeAxumScanner— Scans routes from the compile-time metadata registry (RouteMetadata)OpenAPIScanner— Scans routes from utoipa-generated OpenAPI specs (feature =openapi)AxumScannertrait — Extensible scanner interface with include/exclude regex filtersget_scanner()— Factory function for scanner selection by source name
Execution
call()— Execute a module by ID with optional contextcall_anonymous()— Execute with a default anonymous identitystream()— Execute with streaming output (vec-wrapped)cancellable_call()— Execute with timeout and cooperative cancellation viaCancelTokenregister_handler()— Register callable handler functions for target strings- Executor uses
tokio::sync::Mutexfor safe async lock holding
Task Management
TaskManager— Async task submission with concurrency and total limitssubmit_task()— Background execution viatokio::spawnget_task_status()/get_task_result()— Poll task lifecyclecancel_task()— Cancel running tasks viaCancelTokenlist_tasks()— List tasks with optional status filtercleanup()— Remove completed/failed/cancelled tasks by age
Engine
get_registry()/get_executor()— Thread-safe singleton management viaOnceLockAxumRegistryWriter— Registers scanned modules into both query registry and executor registryAxumDiscoverer— Discovers modules from YAML binding filesAxumModuleValidator— Validates module IDs (length, reserved words, segment format)setup_observability()— Configures tracing, metrics, and error history from settings
MCP & Export (feature = mcp)
create_mcp_server()— Create an MCP server from the registry (stdio, streamable-http, SSE)to_openai_tools()— Export modules as OpenAI-compatible tool definitions
CLI (feature = cli)
scan— Scan routes and output to registry or YAMLserve— Start an MCP server exposing registered modulesexport— Export modules as OpenAI tool definitionstasks— List, cancel, and clean up async tasks
Examples
basic— Full Axum app withap_handler!,ApContext, and server startuphandler_registration— Register handlers, call withcall()andcall_anonymous()async_tasks— Submit, poll, cancel, and list background tasksopenapi_scanner— Scan OpenAPI specs with include/exclude filtersmcp_server— Create MCP server and export OpenAI tools
Tests
- 67 unit tests across all modules
- 10 integration tests covering end-to-end flow, task management, context extraction, and scanner filters
- All tests pass with
cargo test --all-features