Skip to main content

Build data streaming pipelines using faststan

Project description


Easily deploy NATS Streaming subscribers using Python.


  • Define subscribers using sync and async python functions
  • Automatic data parsing and validation using type annotations and pydantic
  • Support custom validation using any function
  • Allow several subscribers on same channel
  • Support all subscription configuration available in
  • Healthcheck available using HTTP GET request to monitor the applications
  • (TODO) Metrics available using HTTP GET requests to monitor subsriptions status
  • All of FastAPI features

Quick start

  • Install the package from pypi:
pip install faststan
  • Create your first subscriber. Create a file named and write the following lines:
from faststan.faststan import FastSTAN

app = FastSTAN()

def on_event(message: str):
    print(f"INFO :: Received new message: {message}")
  • Start your subscriber:
uvicorn app:app
  • Or if you are in a jupyter notebook environment, start the subscriptions:
await app.start()

Advanced features

Using error callbacks

from faststan.faststan import FastSTAN

app = FastSTAN()

def handle_error(error):
    print("ERROR: {error}")

@app.subscribe("demo", error_cb=handle_error)
def on_event(message: str):
    print(f"INFO :: Received new message: {message}")

Using pydantic models

You can use pydantic models in order to automatically parse incoming messages:

from pydantic import BaseModel
from faststan.faststan import FastSTAN

class Event(BaseModel):
    timestamp: int
    temperature: float
    humidity: float

app = FastSTAN()

def on_event(event):
    msg = f"INFO :: {event.timestamp} :: Temperature: {event.temperature} | Humidity: {event.humidity}"

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

faststan-0.1.3.tar.gz (5.1 kB view hashes)

Uploaded Source

Built Distribution

faststan-0.1.3-py3-none-any.whl (5.9 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page