{"id":18910966,"url":"https://github.com/lukefx/stardust","last_synced_at":"2025-10-17T04:24:24.734Z","repository":{"id":43597221,"uuid":"312787198","full_name":"lukefx/stardust","owner":"lukefx","description":"A minimalist Python web framework inspired by serverless architectures. Build APIs with a single function, powered by Starlette and Uvicorn. 🌟","archived":false,"fork":false,"pushed_at":"2024-11-09T19:31:43.000Z","size":94,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-28T17:36:14.233Z","etag":null,"topics":["api","async","backend","fastapi","lambda","microservices","minimalist","python","python3","rest-api","serverless","starlette","uvicorn","web-framework","webdev"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/lukefx.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-11-14T09:43:44.000Z","updated_at":"2025-03-25T20:28:35.000Z","dependencies_parsed_at":"2025-02-19T12:50:16.823Z","dependency_job_id":null,"html_url":"https://github.com/lukefx/stardust","commit_stats":{"total_commits":9,"total_committers":2,"mean_commits":4.5,"dds":"0.11111111111111116","last_synced_commit":"30b5860be72bf1cb6cadfcc3b11cecd6a82ef785"},"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lukefx%2Fstardust","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lukefx%2Fstardust/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lukefx%2Fstardust/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lukefx%2Fstardust/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lukefx","download_url":"https://codeload.github.com/lukefx/stardust/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249021042,"owners_count":21199669,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["api","async","backend","fastapi","lambda","microservices","minimalist","python","python3","rest-api","serverless","starlette","uvicorn","web-framework","webdev"],"created_at":"2024-11-08T09:47:24.443Z","updated_at":"2025-10-17T04:24:19.701Z","avatar_url":"https://github.com/lukefx.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Stardust 🌟\n\n[![PyPI version](https://badge.fury.io/py/stardust.svg)](https://badge.fury.io/py/stardust)\n[![Python Versions](https://img.shields.io/pypi/pyversions/stardust.svg)](https://pypi.org/project/stardust/)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n\nA micro web framework inspired by serverless and lambda deployments, designed for simplicity and efficiency.\n\n## Table of Contents\n- [Installation](#installation)\n- [Quick Start](#quick-start)\n- [Features](#features)\n- [Usage Examples](#usage-examples)\n- [Development](#development)\n- [Contributing](#contributing)\n- [License](#license)\n\n## Installation\n\nInstall Stardust using pip:\n\n```bash\npip install stardust\n```\n\nRequires Python 3.10 or higher.\n\n## Quick Start\n\nCreate a simple API in seconds with `app.py`:\n\n```python\nasync def serve(req):\n    return {\"hello\": \"world\"}\n```\n\nRun your application:\n\n```bash\nstardust app.py\n```\n\nYour API will be available at `http://localhost:8000`\n\n## Features\n\n- 🚀 **Minimal Setup**: Create APIs with just a single function\n- 🛠 **Modern Python**: Built for Python 3.10+ with full async support\n- 🔌 **CORS Enabled**: Built-in CORS middleware for web applications\n- ⚡ **Fast**: Powered by Starlette and Uvicorn\n- 🧩 **Flexible Responses**: Support for JSON, Plain Text, and custom Response objects\n- 🔍 **Developer Friendly**: Debug mode and customizable logging\n\n## Usage Examples\n\n### JSON Response\n\n```python\nasync def serve(req):\n    return {\"message\": \"Hello, World!\"}\n```\n\n### Plain Text Response\n\n```python\nfrom starlette.responses import PlainTextResponse\n\nasync def serve(req):\n    return PlainTextResponse(\"Hello, World!\")\n```\n\n### Query Parameters\n\n```python\nasync def serve(req):\n    name = req.query_params.get(\"name\", \"world\")\n    return {\"hello\": name}\n```\n\n### POST Request Handler\n\n```python\nasync def serve(req):\n    body = await req.json()\n    return body  # Echo back the request body\n```\n\n### Custom Status Codes\n\n```python\nfrom starlette.responses import Response\n\nasync def serve(req):\n    return Response(status_code=204)\n```\n\n## Command Line Options\n\n```bash\nstardust [options] [file]\n\nOptions:\n  --port PORT        Port number (default: 8000)\n  --host HOST        Host address (default: 0.0.0.0)\n  --log-level LEVEL  Logging level (default: error)\n  --debug           Enable debug mode\n```\n\n## Development\n\nTo set up the development environment:\n\n```bash\n# Clone the repository\ngit clone https://github.com/lukefx/stardust\ncd stardust\n\n# Install development dependencies\nuv sync --all-extras --dev\n\n# Run tests\nuv run pytest\n```\n\n## Contributing\n\nContributions are welcome! Please feel free to submit a Pull Request. For major changes, please open an issue first to discuss what you would like to change.\n\n1. Fork the repository\n2. Create your feature branch (`git checkout -b feature/AmazingFeature`)\n3. Commit your changes (`git commit -m 'Add some AmazingFeature'`)\n4. Push to the branch (`git push origin feature/AmazingFeature`)\n5. Open a Pull Request\n\n## License\n\nThis project is licensed under the MIT License - see the LICENSE file for details.\n\n## Acknowledgements\n\nBuilt with:\n- [Starlette](https://www.starlette.io/)\n- [Uvicorn](https://www.uvicorn.org/)\n\n---\n\nCreated by [Luca Simone](mailto:info@lucasimone.info)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flukefx%2Fstardust","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flukefx%2Fstardust","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flukefx%2Fstardust/lists"}