Metadata-Version: 2.3
Name: stardust
Version: 0.0.7
Summary: Stardust is micro web framework inspired by serverless and lambda deployments.
Project-URL: Repository, https://github.com/lukefx/stardust
Author-email: Luca Simone <info@lucasimone.info>
License: MIT
License-File: LICENSE.txt
Keywords: framework,lambda,serverless,web
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Internet :: WWW/HTTP :: HTTP Servers
Classifier: Topic :: Software Development :: Libraries :: Application Frameworks
Requires-Python: >=3.10
Requires-Dist: starlette<0.42.0,>=0.41.2
Requires-Dist: uvicorn<0.33.0,>=0.32.0
Description-Content-Type: text/markdown

# Stardust

Micro framework inspired by the simple lambda or serveless deployment.

### Usage:

```sh
$ pip install stardust
```

Create a file with a coroutine function that returns a dict, for example `app.py`:
```python
async def serve(req):
    return {
      'hello': 'world'
    }
```

Now just start the framework, nothing more to do...
```sh
$ stardust app.py
```

You're up and running! 🎉

### More complex cases

For more complex cases or apps that are not just one function, Stardust is also able to use a module as starting point.

Create a Python module:

```sh
$ tree example_module
example_module
├── __init__.py
└── app.py
```

Let's assume app is a complex app with many functions, you can find an example into the `examples` folder.
The module should export only the main function that Stardust will use as entrypoint:

```python
from .app import serve
```

And specify the module folder instead of a file:

```sh
$ stardust ./example_module
```

### Contributing

Clone the project, install all the dependencies with:

```bash
$ uv python install 3.13
$ uv sync
```

Testing and linting

```bash
$ uv run pytest
$ uv tool run ruff format .
```