# Nexus
[](https://badge.fury.io/py/nexus)
[](https://www.python.org/downloads/)
[](https://opensource.org/licenses/MIT)
[](https://github.com/dnviti/nexus-platform/actions/workflows/main.yml)
[](https://github.com/dnviti/nexus-platform/actions/workflows/docs.yml)
[](https://codecov.io/gh/dnviti/nexus-platform)
[](https://github.com/psf/black)
**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
```bash
pip install nexus-platform
```
### Create Your First Application
```python
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
```bash
nexus plugin create my_plugin
```
```python
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](docs/getting-started/installation.md)** - Install Nexus in 2 minutes
- **[Quick Start](docs/getting-started/quickstart.md)** - Build your first app in 5 minutes
- **[First Plugin](docs/getting-started/first-plugin.md)** - Create your first plugin
- **[Configuration](docs/getting-started/configuration.md)** - Configure your application
### 🏗️ Architecture & Development
- **[Architecture Overview](docs/architecture/overview.md)** - System design and principles
- **[Plugin Basics](docs/plugins/basics.md)** - Build powerful plugins
- **[API Routes](docs/plugins/api-routes.md)** - Create REST endpoints
- **[Database Integration](docs/plugins/database.md)** - Data persistence
### 📚 Complete Documentation
- **[Documentation Index](docs/README.md)** - Full documentation structure
- **[API Reference](docs/api/README.md)** - Complete framework reference
- **[Deployment Guide](docs/deployment/README.md)** - Production deployment
## 🏗️ Architecture
```mermaid
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
```bash
# 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
```bash
# 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):**
```bash
python scripts/pre_push_check.py # Sets up pre-commit hooks automatically
```
**Manual Setup:**
```bash
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
```bash
# 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`](.githooks/README.md) for detailed hook documentation.
## 📄 License
This project is licensed under the MIT License - see the [LICENSE](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](https://fastapi.tiangolo.com/)
- Powered by [SQLAlchemy](https://www.sqlalchemy.org/)
- CLI built with [Click](https://click.palletsprojects.com/)
---
**Made with ❤️ by the Nexus Team**
_Start building your next great application with Nexus today!_
Raw data
{
"_id": null,
"home_page": null,
"name": "nexus-platform",
"maintainer": "Nexus Team",
"docs_url": null,
"requires_python": "<4.0,>=3.11",
"maintainer_email": "team@nexus.dev",
"keywords": "framework, plugin-system, modular, fastapi, async, microservices, api, rest, websocket, cli, application-platform, enterprise",
"author": "Nexus Team",
"author_email": "team@nexus.dev",
"download_url": "https://files.pythonhosted.org/packages/02/c2/84b4b4777806dd30d56ff6954b9b45f69a5966daba276917bb57afda8aa8/nexus_platform-0.1.3.tar.gz",
"platform": null,
"description": "# Nexus\n\n[](https://badge.fury.io/py/nexus)\n[](https://www.python.org/downloads/)\n[](https://opensource.org/licenses/MIT)\n[](https://github.com/dnviti/nexus-platform/actions/workflows/main.yml)\n[](https://github.com/dnviti/nexus-platform/actions/workflows/docs.yml)\n[](https://codecov.io/gh/dnviti/nexus-platform)\n[](https://github.com/psf/black)\n\n**The Ultimate Plugin-Based Application Platform** - Build modular, scalable applications with ease.\n\nNexus revolutionizes application development by making **everything a plugin**. Create applications as collections of focused, reusable plugins that work together seamlessly.\n\n## \u2728 Key Features\n\n- **\ud83d\udd0c Pure Plugin Architecture** - Every feature is a plugin, ensuring complete modularity\n- **\ud83d\udd25 Hot-Reload Support** - Add, update, or remove plugins without restarting\n- **\ud83c\udfaf FastAPI Integration** - Modern async web framework with automatic OpenAPI docs\n- **\ud83d\udee1\ufe0f Built-in Authentication** - JWT-based auth with role-based access control\n- **\ud83d\udcca Multi-Database Support** - SQLAlchemy integration with PostgreSQL, MySQL, SQLite\n- **\ud83c\udf10 API-First Design** - Automatic REST API generation with Swagger UI\n- **\u26a1 High Performance** - Async/await throughout with optimized request handling\n- **\ud83d\udcc8 Monitoring & Metrics** - Health checks, metrics collection, and observability\n- **\ud83d\udd27 CLI Tools** - Powerful command-line interface for development and deployment\n\n## \ud83d\ude80 Quick Start\n\n### Installation\n\n```bash\npip install nexus-platform\n```\n\n### Create Your First Application\n\n```python\nfrom nexus import create_nexus_app\n\napp = create_nexus_app(\n title=\"My App\",\n description=\"Built with Nexus\",\n version=\"1.0.0\"\n)\n\nif __name__ == \"__main__\":\n import uvicorn\n uvicorn.run(app, host=\"0.0.0.0\", port=8000)\n```\n\nYour application runs at `http://localhost:8000` with:\n\n- **API Docs**: `http://localhost:8000/docs`\n- **Health Check**: `http://localhost:8000/health`\n\n### Create Your First Plugin\n\n```bash\nnexus plugin create my_plugin\n```\n\n```python\nfrom nexus import BasePlugin\nfrom fastapi import APIRouter\n\nclass MyPlugin(BasePlugin):\n def __init__(self):\n super().__init__()\n self.name = \"my_plugin\"\n self.version = \"1.0.0\"\n\n async def initialize(self) -> bool:\n self.logger.info(\"Plugin initialized!\")\n return True\n\n def get_api_routes(self):\n router = APIRouter(prefix=\"/my-plugin\", tags=[\"my-plugin\"])\n\n @router.get(\"/\")\n async def get_info():\n return {\"plugin\": self.name, \"status\": \"active\"}\n\n return [router]\n\ndef create_plugin():\n return MyPlugin()\n```\n\n## \ud83d\udcda Documentation\n\n### \ud83d\ude80 Getting Started\n\n- **[Installation](docs/getting-started/installation.md)** - Install Nexus in 2 minutes\n- **[Quick Start](docs/getting-started/quickstart.md)** - Build your first app in 5 minutes\n- **[First Plugin](docs/getting-started/first-plugin.md)** - Create your first plugin\n- **[Configuration](docs/getting-started/configuration.md)** - Configure your application\n\n### \ud83c\udfd7\ufe0f Architecture & Development\n\n- **[Architecture Overview](docs/architecture/overview.md)** - System design and principles\n- **[Plugin Basics](docs/plugins/basics.md)** - Build powerful plugins\n- **[API Routes](docs/plugins/api-routes.md)** - Create REST endpoints\n- **[Database Integration](docs/plugins/database.md)** - Data persistence\n\n### \ud83d\udcda Complete Documentation\n\n- **[Documentation Index](docs/README.md)** - Full documentation structure\n- **[API Reference](docs/api/README.md)** - Complete framework reference\n- **[Deployment Guide](docs/deployment/README.md)** - Production deployment\n\n## \ud83c\udfd7\ufe0f Architecture\n\n```mermaid\ngraph TD\n A[Nexus App] --> B[Plugin Manager]\n A --> C[Event Bus]\n A --> D[Service Registry]\n A --> E[FastAPI Core]\n\n B --> F[Plugin 1]\n B --> G[Plugin 2]\n B --> H[Plugin N...]\n\n F --> C\n G --> C\n H --> C\n\n F --> D\n G --> D\n H --> D\n```\n\n## \ud83d\udd27 CLI Tools\n\n```bash\n# Application management\nnexus run --host 0.0.0.0 --port 8000\nnexus init\nnexus status\nnexus health\n\n# Plugin management\nnexus plugin create <name>\nnexus plugin list\nnexus plugin info <name>\n\n# Admin tools\nnexus-admin system info\nnexus-admin user create <username>\nnexus-admin plugin status\n```\n\n## \ud83d\udcc1 Project Structure\n\n```\nmy-nexus-app/\n\u251c\u2500\u2500 main.py # Application entry point\n\u251c\u2500\u2500 nexus_config.yaml # Configuration file\n\u251c\u2500\u2500 nexus/ # Nexus framework core\n\u251c\u2500\u2500 plugins/ # Plugin directory\n\u251c\u2500\u2500 plugin_template/ # Plugin development template\n\u251c\u2500\u2500 config/ # Configuration files\n\u2514\u2500\u2500 pyproject.toml # Package configuration\n```\n\n## \ud83c\udf1f Core Components\n\n### Plugin Manager\n\nHandles plugin lifecycle, loading, and dependency management with hot-reload support.\n\n### Event Bus\n\nAsynchronous publish-subscribe system for loose coupling between plugins.\n\n### Service Registry\n\nDependency injection container for sharing services between plugins.\n\n### Authentication Manager\n\nJWT-based authentication with role-based access control.\n\n### Database Adapter\n\nMulti-database support with connection pooling and transaction management.\n\n## \ud83e\udd1d Contributing\n\nWe welcome contributions! Here's how to get started:\n\n### Development Setup\n\n```bash\n# Clone repository\ngit clone https://github.com/dnviti/nexus-platform.git\ncd nexus\n\n# Set up development environment\npython -m venv .venv\nsource .venv/bin/activate # On Windows: .venv\\Scripts\\activate\n\n# Install dependencies\npoetry install --with dev,test\n\n# Set up git hooks for quality assurance (RECOMMENDED)\npython scripts/pre_push_check.py\n\n# Verify setup\npython scripts/test_ci_locally.py --fast\n```\n\n### Quality Assurance\n\n**\u26a0\ufe0f IMPORTANT**: Contributors should use git hooks to ensure code quality and reduce CI failures.\n\n**Automatic Setup (Recommended):**\n\n```bash\npython scripts/pre_push_check.py # Sets up pre-commit hooks automatically\n```\n\n**Manual Setup:**\n\n```bash\ngit config core.hooksPath .githooks\nchmod +x .githooks/*\n```\n\n**What the hooks validate on each commit:**\n\n- \u2705 Code formatting (Black)\n- \u2705 Import sorting (isort)\n- \u2705 Linting (Flake8)\n- \u2705 Type checking (MyPy)\n- \u2705 Security scanning (Bandit)\n- \u2705 Full test suite (496 unit + 16 integration tests)\n- \u2705 Code coverage analysis\n- \u2705 Build validation\n\n### Development Workflow\n\n```bash\n# Quick development validation\npython scripts/pre_push_check.py --fast\n\n# Make changes, then commit (triggers full validation)\ngit add .\ngit commit -m \"Your meaningful commit message\"\n\n# Push after successful validation\ngit push\n```\n\n**Note**: Git hooks ensure every commit meets the same quality standards as our CI pipeline, significantly reducing development friction and CI failures.\n\nSee [`.githooks/README.md`](.githooks/README.md) for detailed hook documentation.\n\n## \ud83d\udcc4 License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n## \ud83d\udd17 Links\n\n- **PyPI Package**: https://pypi.org/project/nexus/\n- **GitHub Repository**: https://github.com/dnviti/nexus-platform\n- **Issue Tracker**: https://github.com/dnviti/nexus-platform/issues\n- **Discussions**: https://github.com/dnviti/nexus-platform/discussions\n\n## \ud83d\ude4f Acknowledgments\n\n- Built with [FastAPI](https://fastapi.tiangolo.com/)\n- Powered by [SQLAlchemy](https://www.sqlalchemy.org/)\n- CLI built with [Click](https://click.palletsprojects.com/)\n\n---\n\n**Made with \u2764\ufe0f by the Nexus Team**\n\n_Start building your next great application with Nexus today!_\n\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "The Ultimate Plugin-Based Application Platform - Build modular, scalable applications with ease",
"version": "0.1.3",
"project_urls": {
"Bug Tracker": "https://github.com/dnviti/nexus-platform/issues",
"Changelog": "https://github.com/dnviti/nexus-platform/blob/main/CHANGELOG.md",
"Discord": "https://discord.gg/nexus",
"Discussions": "https://github.com/dnviti/nexus-platform/discussions",
"Documentation": "https://docs.nexus.dev",
"Funding": "https://github.com/sponsors/dnviti",
"Homepage": "https://nexus.dev",
"Repository": "https://github.com/dnviti/nexus-platform",
"Twitter": "https://twitter.com/nexus_dev"
},
"split_keywords": [
"framework",
" plugin-system",
" modular",
" fastapi",
" async",
" microservices",
" api",
" rest",
" websocket",
" cli",
" application-platform",
" enterprise"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "ff8d62a5e7625bee6bb750b93a7c7d86804ef3d0308d8394d898e3022b4795a8",
"md5": "07d6664fbee2f36a4d193c74e672b26d",
"sha256": "2c7409cfc473548d5fb115e5757600bad5c7ea8aad2fa6220afae22043d8ff39"
},
"downloads": -1,
"filename": "nexus_platform-0.1.3-py3-none-any.whl",
"has_sig": false,
"md5_digest": "07d6664fbee2f36a4d193c74e672b26d",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": "<4.0,>=3.11",
"size": 71105,
"upload_time": "2025-08-18T13:21:24",
"upload_time_iso_8601": "2025-08-18T13:21:24.374293Z",
"url": "https://files.pythonhosted.org/packages/ff/8d/62a5e7625bee6bb750b93a7c7d86804ef3d0308d8394d898e3022b4795a8/nexus_platform-0.1.3-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "02c284b4b4777806dd30d56ff6954b9b45f69a5966daba276917bb57afda8aa8",
"md5": "d566f1bf03b6a29b097093fc7dfbb84c",
"sha256": "78767d30a7f165f4bd7b43d31d54f3f65a8a0117be817a2b08a251536768128f"
},
"downloads": -1,
"filename": "nexus_platform-0.1.3.tar.gz",
"has_sig": false,
"md5_digest": "d566f1bf03b6a29b097093fc7dfbb84c",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "<4.0,>=3.11",
"size": 598645,
"upload_time": "2025-08-18T13:21:25",
"upload_time_iso_8601": "2025-08-18T13:21:25.720504Z",
"url": "https://files.pythonhosted.org/packages/02/c2/84b4b4777806dd30d56ff6954b9b45f69a5966daba276917bb57afda8aa8/nexus_platform-0.1.3.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-08-18 13:21:25",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "dnviti",
"github_project": "nexus-platform",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "nexus-platform"
}