The Ultimate Plugin-Based Application Platform - Build modular, scalable applications with ease
Project description
Nexus
The Ultimate Plugin-Based Application Platform - Build modular, scalable applications with ease.
Nexus revolutionizes application development by making everything a plugin. Create applications as collections of focused, reusable plugins that work together seamlessly.
โจ Key Features
- ๐ Pure Plugin Architecture - Every feature is a plugin, ensuring complete modularity
- ๐ฅ Hot-Reload Support - Add, update, or remove plugins without restarting
- ๐ฏ FastAPI Integration - Modern async web framework with automatic OpenAPI docs
- ๐ก๏ธ Built-in Authentication - JWT-based auth with role-based access control
- ๐ Multi-Database Support - SQLAlchemy integration with PostgreSQL, MySQL, SQLite
- ๐ API-First Design - Automatic REST API generation with Swagger UI
- โก High Performance - Async/await throughout with optimized request handling
- ๐ Monitoring & Metrics - Health checks, metrics collection, and observability
- ๐ง CLI Tools - Powerful command-line interface for development and deployment
๐ Quick Start
Installation
pip install nexus-platform
Create Your First Application
from nexus import create_nexus_app
app = create_nexus_app(
title="My App",
description="Built with Nexus",
version="1.0.0"
)
if __name__ == "__main__":
import uvicorn
uvicorn.run(app, host="0.0.0.0", port=8000)
Your application runs at http://localhost:8000 with:
- API Docs:
http://localhost:8000/docs - Health Check:
http://localhost:8000/health
Create Your First Plugin
nexus plugin create my_plugin
from nexus import BasePlugin
from fastapi import APIRouter
class MyPlugin(BasePlugin):
def __init__(self):
super().__init__()
self.name = "my_plugin"
self.version = "1.0.0"
async def initialize(self) -> bool:
self.logger.info("Plugin initialized!")
return True
def get_api_routes(self):
router = APIRouter(prefix="/my-plugin", tags=["my-plugin"])
@router.get("/")
async def get_info():
return {"plugin": self.name, "status": "active"}
return [router]
def create_plugin():
return MyPlugin()
๐ Documentation
๐ Getting Started
- Installation - Install Nexus in 2 minutes
- Quick Start - Build your first app in 5 minutes
- First Plugin - Create your first plugin
- Configuration - Configure your application
๐๏ธ Architecture & Development
- Architecture Overview - System design and principles
- Plugin Basics - Build powerful plugins
- API Routes - Create REST endpoints
- Database Integration - Data persistence
๐ Complete Documentation
- Documentation Index - Full documentation structure
- API Reference - Complete framework reference
- Deployment Guide - Production deployment
๐๏ธ Architecture
graph TD
A[Nexus App] --> B[Plugin Manager]
A --> C[Event Bus]
A --> D[Service Registry]
A --> E[FastAPI Core]
B --> F[Plugin 1]
B --> G[Plugin 2]
B --> H[Plugin N...]
F --> C
G --> C
H --> C
F --> D
G --> D
H --> D
๐ง CLI Tools
# Application management
nexus run --host 0.0.0.0 --port 8000
nexus init
nexus status
nexus health
# Plugin management
nexus plugin create <name>
nexus plugin list
nexus plugin info <name>
# Admin tools
nexus-admin system info
nexus-admin user create <username>
nexus-admin plugin status
๐ Project Structure
my-nexus-app/
โโโ main.py # Application entry point
โโโ nexus_config.yaml # Configuration file
โโโ nexus/ # Nexus framework core
โโโ plugins/ # Plugin directory
โโโ plugin_template/ # Plugin development template
โโโ config/ # Configuration files
โโโ pyproject.toml # Package configuration
๐ Core Components
Plugin Manager
Handles plugin lifecycle, loading, and dependency management with hot-reload support.
Event Bus
Asynchronous publish-subscribe system for loose coupling between plugins.
Service Registry
Dependency injection container for sharing services between plugins.
Authentication Manager
JWT-based authentication with role-based access control.
Database Adapter
Multi-database support with connection pooling and transaction management.
๐ค Contributing
We welcome contributions! Here's how to get started:
Development Setup
# Clone repository
git clone https://github.com/dnviti/nexus-platform.git
cd nexus
# Set up development environment
python -m venv .venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate
# Install dependencies
poetry install --with dev,test
# Set up git hooks for quality assurance (RECOMMENDED)
python scripts/pre_push_check.py
# Verify setup
python scripts/test_ci_locally.py --fast
Quality Assurance
โ ๏ธ IMPORTANT: Contributors should use git hooks to ensure code quality and reduce CI failures.
Automatic Setup (Recommended):
python scripts/pre_push_check.py # Sets up pre-commit hooks automatically
Manual Setup:
git config core.hooksPath .githooks
chmod +x .githooks/*
What the hooks validate on each commit:
- โ Code formatting (Black)
- โ Import sorting (isort)
- โ Linting (Flake8)
- โ Type checking (MyPy)
- โ Security scanning (Bandit)
- โ Full test suite (496 unit + 16 integration tests)
- โ Code coverage analysis
- โ Build validation
Development Workflow
# Quick development validation
python scripts/pre_push_check.py --fast
# Make changes, then commit (triggers full validation)
git add .
git commit -m "Your meaningful commit message"
# Push after successful validation
git push
Note: Git hooks ensure every commit meets the same quality standards as our CI pipeline, significantly reducing development friction and CI failures.
See .githooks/README.md for detailed hook documentation.
๐ License
This project is licensed under the MIT License - see the LICENSE file for details.
๐ Links
- PyPI Package: https://pypi.org/project/nexus/
- GitHub Repository: https://github.com/dnviti/nexus-platform
- Issue Tracker: https://github.com/dnviti/nexus-platform/issues
- Discussions: https://github.com/dnviti/nexus-platform/discussions
๐ Acknowledgments
- Built with FastAPI
- Powered by SQLAlchemy
- CLI built with Click
Made with โค๏ธ by the Nexus Team
Start building your next great application with Nexus today!
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
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 nexus_platform-0.1.2.tar.gz.
File metadata
- Download URL: nexus_platform-0.1.2.tar.gz
- Upload date:
- Size: 572.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
814f0953ad588b5f899317545980d00935c07128127296594b4ff03ae1bfe9ab
|
|
| MD5 |
3aaccc3c13b57a910a30090f04d8b3f4
|
|
| BLAKE2b-256 |
4848a41a2dfd7f61cb76f3190c1b3e58b48730191dea5089cfb9a578751deb87
|
File details
Details for the file nexus_platform-0.1.2-py3-none-any.whl.
File metadata
- Download URL: nexus_platform-0.1.2-py3-none-any.whl
- Upload date:
- Size: 48.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2d5b3cc9b8f8d321b15eb58652d60e4ba71a4c419d93719f07aafd56c73b7633
|
|
| MD5 |
0bf87ec8a53ae141c43d97dec3759482
|
|
| BLAKE2b-256 |
e9f95bc6aa8c8741b41cf04e8cc2c872ba0b8f2c2ee879a502566ae7b5a41ae1
|