nexus-platform


Namenexus-platform JSON
Version 0.1.3 PyPI version JSON
download
home_pageNone
SummaryThe Ultimate Plugin-Based Application Platform - Build modular, scalable applications with ease
upload_time2025-08-18 13:21:25
maintainerNexus Team
docs_urlNone
authorNexus Team
requires_python<4.0,>=3.11
licenseMIT
keywords framework plugin-system modular fastapi async microservices api rest websocket cli application-platform enterprise
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # Nexus

[![PyPI version](https://badge.fury.io/py/nexus.svg)](https://badge.fury.io/py/nexus)
[![Python 3.11+](https://img.shields.io/badge/python-3.11+-blue.svg)](https://www.python.org/downloads/)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
[![CI/CD](https://github.com/dnviti/nexus-platform/actions/workflows/main.yml/badge.svg)](https://github.com/dnviti/nexus-platform/actions/workflows/main.yml)
[![Documentation](https://github.com/dnviti/nexus-platform/actions/workflows/docs.yml/badge.svg)](https://github.com/dnviti/nexus-platform/actions/workflows/docs.yml)
[![Codecov](https://codecov.io/gh/dnviti/nexus-platform/branch/main/graph/badge.svg)](https://codecov.io/gh/dnviti/nexus-platform)
[![Code style: Black](https://img.shields.io/badge/code%20style-black-000000.svg)](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[![PyPI version](https://badge.fury.io/py/nexus.svg)](https://badge.fury.io/py/nexus)\n[![Python 3.11+](https://img.shields.io/badge/python-3.11+-blue.svg)](https://www.python.org/downloads/)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n[![CI/CD](https://github.com/dnviti/nexus-platform/actions/workflows/main.yml/badge.svg)](https://github.com/dnviti/nexus-platform/actions/workflows/main.yml)\n[![Documentation](https://github.com/dnviti/nexus-platform/actions/workflows/docs.yml/badge.svg)](https://github.com/dnviti/nexus-platform/actions/workflows/docs.yml)\n[![Codecov](https://codecov.io/gh/dnviti/nexus-platform/branch/main/graph/badge.svg)](https://codecov.io/gh/dnviti/nexus-platform)\n[![Code style: Black](https://img.shields.io/badge/code%20style-black-000000.svg)](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"
}
        
Elapsed time: 0.50538s