Metadata-Version: 2.1
Name: debouncer
Version: 0.0.4
Summary: Debouncer is a proxy that debounce requests.
Author: Joola
Author-email: jooola@users.noreply.github.com
Requires-Python: >=3.7,<4.0
Classifier: Development Status :: 3 - Alpha
Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3)
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Requires-Dist: fastapi (>=0.70.1,<0.71.0)
Requires-Dist: httpx (>=0.21.1,<0.22.0)
Requires-Dist: loguru (>=0.5.3,<0.6.0)
Requires-Dist: pydantic (>=1.8.2,<2.0.0)
Requires-Dist: sqlitedict (>=1.7.0,<2.0.0)
Requires-Dist: uvicorn (>=0.16.0,<0.17.0)
Description-Content-Type: text/markdown

# Debouncer

`Debouncer` is a proxy that debounce requests.

[![](https://mermaid.ink/svg/eyJjb2RlIjoic2VxdWVuY2VEaWFncmFtXG4gICAgcGFydGljaXBhbnQgYyBhcyBDbGllbnRcbiAgICBwYXJ0aWNpcGFudCBmIGFzIEZ1bm5lbFxuICAgIHBhcnRpY2lwYW50IHMgYXMgU2VydmVyXG5cbiAgICBjLT4-ZjogTmV3IHJlcXVlc3RcbiAgICBhY3RpdmF0ZSBmXG5cbiAgICBmLT4-czogRGlzcGF0Y2ggcmVxdWVzdFxuICAgIFxuICAgIGFsdCB3aGVuIFRpbWVvdXQgPiAwXG4gICAgICAgIGYtPj5mOiBXYWl0IHJlcXVlc3QgdGltZW91dFxuICAgICAgICBjLS0-PmY6IDJuZCByZXF1ZXN0IChpZ25vcmVkIHdoZW4gdGltZW91dCBub3QgZWxhcHNlZClcbiAgICBlbHNlIHdoZW4gZm9yY2luZyByZXF1ZXN0IGRlbGV0aW9uIFxuICAgICAgICBzLT4-ZjogRm9yY2UgZGVsZXRlIHJlcXVlc3RcbiAgICBlbmRcblxuICAgIGYtPj5mOiBEZWxldGUgcmVxdWVzdFxuXG4gICAgZGVhY3RpdmF0ZSBmXG4iLCJtZXJtYWlkIjp7InRoZW1lIjoiZGVmYXVsdCJ9LCJ1cGRhdGVFZGl0b3IiOmZhbHNlLCJhdXRvU3luYyI6dHJ1ZSwidXBkYXRlRGlhZ3JhbSI6ZmFsc2V9)](https://mermaid.live/edit/#eyJjb2RlIjoic2VxdWVuY2VEaWFncmFtXG4gICAgcGFydGljaXBhbnQgYyBhcyBDbGllbnRcbiAgICBwYXJ0aWNpcGFudCBmIGFzIEZ1bm5lbFxuICAgIHBhcnRpY2lwYW50IHMgYXMgU2VydmVyXG5cbiAgICBjLT4-ZjogTmV3IHJlcXVlc3RcbiAgICBhY3RpdmF0ZSBmXG5cbiAgICBmLT4-czogRGlzcGF0Y2ggcmVxdWVzdFxuICAgIFxuICAgIGFsdCB3aGVuIFRpbWVvdXQgPiAwXG4gICAgICAgIGYtPj5mOiBXYWl0IHJlcXVlc3QgdGltZW91dFxuICAgICAgICBjLS0-PmY6IDJuZCByZXF1ZXN0IChpZ25vcmVkIHdoZW4gdGltZW91dCBub3QgZWxhcHNlZClcbiAgICBlbHNlIHdoZW4gZm9yY2luZyByZXF1ZXN0IGRlbGV0aW9uIFxuICAgICAgICBzLT4-ZjogRm9yY2UgZGVsZXRlIHJlcXVlc3RcbiAgICBlbmRcblxuICAgIGYtPj5mOiBEZWxldGUgcmVxdWVzdFxuXG4gICAgZGVhY3RpdmF0ZSBmXG4iLCJtZXJtYWlkIjoie1xuICBcInRoZW1lXCI6IFwiZGVmYXVsdFwiXG59IiwidXBkYXRlRWRpdG9yIjpmYWxzZSwiYXV0b1N5bmMiOnRydWUsInVwZGF0ZURpYWdyYW0iOmZhbHNlfQ)

## Config

To configure `Debouncer`, you can set the following environment variables:

```sh
# Path to the key/value store, default is "debouncer.db"
STORE_PATH=your-app.db
# Port for the http server, default is "4000"
PORT=8000
# Auth key for a key based auth, default is not set
AUTH_KEY=your-secret-auth-key
```

# Release

To release a new version, first bump the version number in `pyproject.toml` by hand or by using:

```sh
# poetry version --help
poetry version <patch|minor|major>
```

Make a release:

```sh
make release
```

Finally, push the release commit and tag to publish them to Pypi:

```sh
git push --follow-tags
```

