⚡ XCore Framework
High-performance, plugin-first orchestration framework built on FastAPI.
---XCore is designed to load, isolate, and manage modular extensions (plugins) in a secure, sandboxed environment. It provides a robust foundation for building scalable applications where features can be dynamically added, removed, or updated without affecting the core system.
✨ Key Features
- 🔌 Plugin-First Architecture: Everything is a plugin. Keep your core lean and your features modular.
- ⚡ High-Performance Runtime: Optimized EventBus and Warm Pool for minimal latency (Ephemeral/Serverless mode).
- 🛡️ Advanced Sandboxing: AST-based scanning, resource restriction, and C++ security core.
- 🌐 Native Multi-tenancy: Resource isolation (DB/Cache) and tenant-aware routing out of the box.
- 🚀 Built on FastAPI: Leverage the speed and ecosystem of one of the fastest Python frameworks.
- 📦 Service Container: Seamless management of Databases (SQLAlchemy), Cache (Redis or tiered Memory+Redis), and Schedulers.
- 🛠️ Dev-Friendly CLI: Hot-reload plugins, sign manifests, and verify system health with one command.
- 📊 Production Ready: Structured logging, Prometheus metrics, and comprehensive test coverage.
- 🔭 Distributed Tracing: Real OpenTelemetry integration — a single trace_id follows a request across HTTP, plugin calls, and sandboxed subprocess IPC hops.
📺 Demo
Integrating XCore into your FastAPI application is straightforward:
from fastapi import FastAPI
from xcore import Xcore
from contextlib import asynccontextmanager
# 1. Initialize the Kernel
xcore = Xcore(config_path="integration.yaml")
@asynccontextmanager
async def lifespan(app: FastAPI):
# 2. Boot XCore (loads plugins and services)
await xcore.boot(app)
yield
# 3. Graceful shutdown
await xcore.shutdown()
app = FastAPI(lifespan=lifespan)
@app.get("/compute")
async def compute(value: int):
# 4. Call a plugin method dynamically
result = await xcore.plugins.call("math_plugin", "calculate", {"x": value})
return {"result": result}
🚀 Getting Started
Installation
# Clone the repository
git clone https://github.com/traoreera/xcore.git
cd xcore
# Install using Poetry
make install
Quick Run
Start the development server with auto-reload enabled:
make dev
🏗️ Architecture
XCore follows a "minimal core" philosophy. Most business logic resides in plugins, which are managed by the Plugin Supervisor.
flowchart TB
subgraph Core["XCore Kernel"]
X[Orchestrator] --> PS[Plugin Supervisor]
X --> EB[Event Bus]
X --> SC[Service Container]
end
PS --> Trusted[Trusted Plugins]
PS --> Sandbox[Sandboxed Plugins]
SC --> DB[(Database)]
SC --> RD[(Redis)]
SC --> SCH[Scheduler]
🛠️ CLI Reference
The xcore CLI is your control center for managing the framework.
| Command | Description |
|---|---|
xcore plugin list |
List all loaded plugins |
xcore plugin reload <name> |
Hot-reload a plugin without restarting the server |
xcore plugin info <name> |
Inspect plugin manifest and permissions |
xcore plugin sign <path> |
Generate a security signature for a plugin |
xcore services status |
Check the health of DB, Cache, and Scheduler |
xcore health |
Perform a global system health check |
xcore worker start |
Start the background task worker |
🧪 Development & Quality
We maintain high standards for code quality and security:
make test # Run the full test suite
make lint-fix # Auto-format and fix linting issues
make security-check # Run Bandit security audit
make benchmark # Run performance benchmarks
📄 License
This project is licensed under the MIT License. See the LICENSE file for details.
Built with ❤️ by the XCore Team
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file xcoreruntime-2.5.0.tar.gz.
File metadata
- Download URL: xcoreruntime-2.5.0.tar.gz
- Upload date:
- Size: 130.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/6.1.0 CPython/3.12.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bf8c49af572fc3cfafd11dc51260a82f9d4d5f141ffccca1b2f27526ebc39224
|
|
| MD5 |
35847f3350aae6d9a6444a293ac539ec
|
|
| BLAKE2b-256 |
3ac412dd7d8a52dffb8a9fb70ba5000232fe0c6c91ce354cca1a7a75d9dd5071
|
File details
Details for the file xcoreruntime-2.5.0-py3-none-any.whl.
File metadata
- Download URL: xcoreruntime-2.5.0-py3-none-any.whl
- Upload date:
- Size: 181.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/6.1.0 CPython/3.12.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
48e9bb2ed65986d2f1cedd2f655bf7fa30c9fd3216d624d081480f1033dd1d18
|
|
| MD5 |
7e52875ca8cdeac6134dba6adb703b30
|
|
| BLAKE2b-256 |
96bb2d90fe6adceb5ec17d1436891e03e48ada09f4f632dc33dd7bf470381fe7
|