fastapi-radar


Namefastapi-radar JSON
Version 0.1.3 PyPI version JSON
download
home_pagehttps://github.com/doganarif/fastapi-radar
SummaryA debugging dashboard for FastAPI applications with real-time monitoring
upload_time2025-09-19 11:09:46
maintainerNone
docs_urlNone
authorArif Dogan
requires_python>=3.8
licenseNone
keywords fastapi debugging monitoring dashboard development-tools
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # FastAPI Radar 🛰️

[![Python Version](https://img.shields.io/badge/python-3.8%2B-blue.svg)](https://www.python.org/downloads/)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)

**A debugging dashboard for FastAPI applications providing real-time request, database query, and exception monitoring.**

✨ **Just one line to add powerful monitoring to your FastAPI app!**

## 🎯 See it in Action

![FastAPI Radar Dashboard Demo](./assets/demo.gif)

## Installation

```bash
pip install fastapi-radar
```

Or with your favorite package manager:

```bash
# Using poetry
poetry add fastapi-radar

# Using pipenv
pipenv install fastapi-radar
```

**Note:** The dashboard comes pre-built! No need to build anything - just install and use.

## Quick Start

```python
from fastapi import FastAPI
from fastapi_radar import Radar
from sqlalchemy import create_engine

app = FastAPI()
engine = create_engine("sqlite:///./app.db")

# That's it! One line to add complete monitoring 🚀
radar = Radar(app, db_engine=engine)
radar.create_tables()

# Your routes work unchanged
@app.get("/users")
async def get_users():
    return {"users": []}
```

Access your dashboard at: **http://localhost:8000/\_\_radar/**

## Features

- 🚀 **Zero Configuration** - Works with any FastAPI + SQLAlchemy app
- 📊 **Request Monitoring** - Complete HTTP request/response capture with timing
- 🗃️ **Database Monitoring** - SQL query logging with execution times
- 🐛 **Exception Tracking** - Automatic exception capture with stack traces
- ⚡ **Real-time Updates** - Live dashboard updates as requests happen
- 🎨 **Beautiful UI** - Modern React dashboard with shadcn/ui components

## Configuration

```python
radar = Radar(
    app,
    db_engine=engine,
    dashboard_path="/__radar",  # Custom dashboard path
    enable_in_production=False,  # Disable in production
    capture_body=True,           # Capture request/response bodies
    capture_headers=True,        # Capture headers
    max_body_size=10000,        # Max body size to capture
)
```

## Contributing

We welcome contributions! Please see our [Contributing Guide](CONTRIBUTING.md) for details.

### Development Setup

For contributors who want to modify the codebase:

1. Clone the repository:

```bash
git clone https://github.com/doganarif/fastapi-radar.git
cd fastapi-radar
```

2. Install development dependencies:

```bash
pip install -e ".[dev]"
```

3. (Optional) If modifying the dashboard UI:

```bash
cd fastapi_radar/dashboard
npm install
npm run dev  # For development with hot reload
# or
npm run build  # To rebuild the production bundle
```

4. Run the example app:

```bash
python example_app.py
```

## License

This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.

## Acknowledgments

- Built with [FastAPI](https://fastapi.tiangolo.com/)
- Dashboard powered by [React](https://react.dev/) and [shadcn/ui](https://ui.shadcn.com/)

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/doganarif/fastapi-radar",
    "name": "fastapi-radar",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": null,
    "keywords": "fastapi, debugging, monitoring, dashboard, development-tools",
    "author": "Arif Dogan",
    "author_email": "Arif Dogan <me@arif.sh>",
    "download_url": "https://files.pythonhosted.org/packages/81/2b/33cdbe4f9b0f4b0b0e946b08c7e1496df2bf9556ddfc54e8eb0b0d89e4b3/fastapi_radar-0.1.3.tar.gz",
    "platform": null,
    "description": "# FastAPI Radar \ud83d\udef0\ufe0f\n\n[![Python Version](https://img.shields.io/badge/python-3.8%2B-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\n**A debugging dashboard for FastAPI applications providing real-time request, database query, and exception monitoring.**\n\n\u2728 **Just one line to add powerful monitoring to your FastAPI app!**\n\n## \ud83c\udfaf See it in Action\n\n![FastAPI Radar Dashboard Demo](./assets/demo.gif)\n\n## Installation\n\n```bash\npip install fastapi-radar\n```\n\nOr with your favorite package manager:\n\n```bash\n# Using poetry\npoetry add fastapi-radar\n\n# Using pipenv\npipenv install fastapi-radar\n```\n\n**Note:** The dashboard comes pre-built! No need to build anything - just install and use.\n\n## Quick Start\n\n```python\nfrom fastapi import FastAPI\nfrom fastapi_radar import Radar\nfrom sqlalchemy import create_engine\n\napp = FastAPI()\nengine = create_engine(\"sqlite:///./app.db\")\n\n# That's it! One line to add complete monitoring \ud83d\ude80\nradar = Radar(app, db_engine=engine)\nradar.create_tables()\n\n# Your routes work unchanged\n@app.get(\"/users\")\nasync def get_users():\n    return {\"users\": []}\n```\n\nAccess your dashboard at: **http://localhost:8000/\\_\\_radar/**\n\n## Features\n\n- \ud83d\ude80 **Zero Configuration** - Works with any FastAPI + SQLAlchemy app\n- \ud83d\udcca **Request Monitoring** - Complete HTTP request/response capture with timing\n- \ud83d\uddc3\ufe0f **Database Monitoring** - SQL query logging with execution times\n- \ud83d\udc1b **Exception Tracking** - Automatic exception capture with stack traces\n- \u26a1 **Real-time Updates** - Live dashboard updates as requests happen\n- \ud83c\udfa8 **Beautiful UI** - Modern React dashboard with shadcn/ui components\n\n## Configuration\n\n```python\nradar = Radar(\n    app,\n    db_engine=engine,\n    dashboard_path=\"/__radar\",  # Custom dashboard path\n    enable_in_production=False,  # Disable in production\n    capture_body=True,           # Capture request/response bodies\n    capture_headers=True,        # Capture headers\n    max_body_size=10000,        # Max body size to capture\n)\n```\n\n## Contributing\n\nWe welcome contributions! Please see our [Contributing Guide](CONTRIBUTING.md) for details.\n\n### Development Setup\n\nFor contributors who want to modify the codebase:\n\n1. Clone the repository:\n\n```bash\ngit clone https://github.com/doganarif/fastapi-radar.git\ncd fastapi-radar\n```\n\n2. Install development dependencies:\n\n```bash\npip install -e \".[dev]\"\n```\n\n3. (Optional) If modifying the dashboard UI:\n\n```bash\ncd fastapi_radar/dashboard\nnpm install\nnpm run dev  # For development with hot reload\n# or\nnpm run build  # To rebuild the production bundle\n```\n\n4. Run the example app:\n\n```bash\npython example_app.py\n```\n\n## License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n## Acknowledgments\n\n- Built with [FastAPI](https://fastapi.tiangolo.com/)\n- Dashboard powered by [React](https://react.dev/) and [shadcn/ui](https://ui.shadcn.com/)\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "A debugging dashboard for FastAPI applications with real-time monitoring",
    "version": "0.1.3",
    "project_urls": {
        "Bug Reports": "https://github.com/doganarif/fastapi-radar/issues",
        "Homepage": "https://github.com/doganarif/fastapi-radar",
        "Source": "https://github.com/doganarif/fastapi-radar"
    },
    "split_keywords": [
        "fastapi",
        " debugging",
        " monitoring",
        " dashboard",
        " development-tools"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "0ff00007a668086181fed9dae806b1ac62423bdbdf1cb2cce29a35656c690740",
                "md5": "00aa680462bd3c9e7a440c7ef6c917e0",
                "sha256": "3e0890e6978abae8b7161a511e6ae8740406dad965de2289bd21e8f62e09e86a"
            },
            "downloads": -1,
            "filename": "fastapi_radar-0.1.3-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "00aa680462bd3c9e7a440c7ef6c917e0",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 259720,
            "upload_time": "2025-09-19T11:09:45",
            "upload_time_iso_8601": "2025-09-19T11:09:45.409956Z",
            "url": "https://files.pythonhosted.org/packages/0f/f0/0007a668086181fed9dae806b1ac62423bdbdf1cb2cce29a35656c690740/fastapi_radar-0.1.3-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "812b33cdbe4f9b0f4b0b0e946b08c7e1496df2bf9556ddfc54e8eb0b0d89e4b3",
                "md5": "4a666f52c8a6bed83f9ac8991e136239",
                "sha256": "dcdde98b2a13655dbb27f7030e1e740538d00f0d7af584c31d110f7b2130e8c4"
            },
            "downloads": -1,
            "filename": "fastapi_radar-0.1.3.tar.gz",
            "has_sig": false,
            "md5_digest": "4a666f52c8a6bed83f9ac8991e136239",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 260342,
            "upload_time": "2025-09-19T11:09:46",
            "upload_time_iso_8601": "2025-09-19T11:09:46.840740Z",
            "url": "https://files.pythonhosted.org/packages/81/2b/33cdbe4f9b0f4b0b0e946b08c7e1496df2bf9556ddfc54e8eb0b0d89e4b3/fastapi_radar-0.1.3.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-09-19 11:09:46",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "doganarif",
    "github_project": "fastapi-radar",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "fastapi-radar"
}
        
Elapsed time: 2.64277s