Metadata-Version: 2.1
Name: floe
Version: 0.0.14
Summary: Floe
Home-page: https://github.com/happybits/floe
Author: John Loehrer
Author-email: john@happybits.co
License: MIT
Platform: UNKNOWN
Classifier: Development Status :: 4 - Beta
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Programming Language :: Python :: Implementation :: PyPy
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.9
Classifier: Environment :: Web Environment
Classifier: Operating System :: POSIX
License-File: LICENSE

# Floe Microservice

This presents a simple key value data store with a list of ids and configurable backends.

## Configuration
You can configure docker with environmental variables.

new relic can use the standard environmental variables:

https://docs.newrelic.com/docs/agents/python-agent/installation-configuration/python-agent-configuration#environment-variables


then you can add additonal environmental vars for backends.

```
FLOE_URL_FOO='file://.floe'
FLOE_URL_BAR='file:///tmp/floe'
FLOE_URL_BAZZ='mysql://root:pass@127.0.0.1:3306/test?table=bazz'
FLOE_URL_QUUX='http://127.0.0.1:995/my_namespace'
```

## API
You can add other connectors. The interface provides the following methods:

  * get
  * get_multi
  * set
  * set_multi
  * delete
  * delete_multi
  * ids
  * flush

The ids method returns a generator to iterate.
The multi methods allow you do do batch operations on multiple keys.

## Running Locally

Due to some inconsistencies with the way request bodies are handled in different WSGI implementations, PUT requests with a missing or incorrect Content-Length header may hang (https://falcon.readthedocs.io/en/stable/user/faq.html#why-does-req-stream-read-hang-for-certain-requests).

An easy workaround for this when running the server locally is to use gunicorn rather than wsgiref.simple_server

```
$ pip install gunicorn
$ gunicorn -w 4 run:app
```


