Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Aviso logo Aviso logo

Introduction

aviso is ECMWF’s notification system for data-driven workflows. It runs as a client and a server: aviso-server tracks streams of events and pushes them out in close to real time; clients connect, subscribe to the streams they care about, and react when a dataset they were waiting for has landed.

This site documents the client side. This repo holds three clients: a command-line tool, a Rust library, and a Python package. Pick the one that fits how you work.

From the command line

The aviso binary publishes notifications, listens for new ones, and replays history. It runs on Linux and macOS.

aviso listen --event mars --identifiers '{"class":"od"}'

Start with the CLI overview.

From Python

The pyaviso package wraps the Rust core through PyO3, so you get a real Python API: typed value objects, structured exceptions, for-iteration over a watch stream, and the same trigger surface the CLI uses.

import os
import pyaviso

client = pyaviso.AvisoClient(base_url=os.environ["AVISO_BASE_URL"], auth=pyaviso.Env())

for notification in client.listen("mars", filter={"class": "od"}):
    print(notification.sequence, notification.payload)

Start with the Python overview.

From a Rust program

The Rust library powers the CLI and is on crates.io. Use it when you want notifications inside a Rust binary or service.

use aviso::AvisoClient;

let client = AvisoClient::builder()
    .base_url("https://aviso.example")
    .build()?;

Start with the library guide.

New here?

Reference