Skip to main content

sauda

NSE market data for Python. An async client for jugaad-rpc, the Rust gRPC server from the jugaad-rs monorepo. sauda only connects: you run the server (the wheel installs it as the jugaad-rpc command, or use the Docker image) and the client takes care of the connection.

pip install sauda

Start the server in its own terminal and leave it running:

JUGAAD_RPC_ADDR=127.0.0.1:50051 jugaad-rpc

Then connect from Python:

import asyncio
from sauda import Client

async def main():
    client = Client()
    await client.connect()                          # connects to 127.0.0.1:50051

    print((await client.stock_quote("SBIN"))["last_price"])
    rows = await client.stock_history("SBIN", "2026-01-01", "2026-01-31")
    async for q in client.watch_stock_quote("SBIN", interval=5):
        print(q["last_price"])
        break

    await client.disconnect()                       # the server keeps running

asyncio.run(main())

You decide when to connect and disconnect (in a notebook, connect in one cell and use the client in the cells after it). For a short script, async with Client() as c: does both for you. For a server at another address:

from sauda import Client, ConfigBuilder

config = ConfigBuilder().addr("127.0.0.1:50077").build()    # or ConfigBuilder().from_env()
client = Client()
await client.connect(config)
Method (all awaited except the watch) Returns
stock_quote(symbol) live quote with a 5-level order book
watch_stock_quote(symbol, interval=3) async iterator of live quotes
stock_history(symbol, from_date, to_date) daily OHLC, volume and delivery rows
index_history(name, from_date, to_date) daily index OHLC
index_snapshot() every NSE index, live
market_status() open/closed per market segment, holiday-aware
large_deals() bulk, short and block deals
option_chain(symbol, kind="index", expiry=None) option chain rows with call and put legs
option_expiries(symbol) available expiry dates
corporate_announcements(from_date, to_date, segment="equities", symbol=None) exchange disclosures

Results are plain dicts and lists of dicts, so pandas.DataFrame(rows) works directly. Client.stub is the raw generated async gRPC stub for anything not wrapped above.

Full reference, running the server (including Docker), configuration, error handling and troubleshooting: the manual. Upgrading from 0.1.x? 0.2.0 is async only and no longer starts a server for you, so see the upgrade notes.

Wheels: Windows x64, Linux x86_64 (glibc 2.28+), macOS Apple Silicon. Other platforms build from the source distribution, which needs Rust 1.88+. Python 3.9+.

Development

pip install -r requirements-gen.txt maturin
python generate.py           # generate src/sauda/_proto from the shared .proto
maturin develop --release    # build the server + install in the current venv
python smoke_test.py         # offline end-to-end check

Metadata

Release files for sauda 0.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for sauda 0.2.0
File Size Uploaded
sauda-0.2.0.tar.gz 310.0 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for sauda 0.2.0
File Interpreter ABI Platform
sauda-0.2.0-py3-none-win_amd64.whl Python 3 none Windows x86-64 Details
sauda-0.2.0-py3-none-manylinux_2_28_x86_64.whl Python 3 none Linux glibc 2.28+ x86-64 Details
sauda-0.2.0-py3-none-macosx_11_0_arm64.whl Python 3 none macOS 11.0+ ARM64 Details

Total release size: 7.9 MB

Release files / sauda-0.2.0.tar.gz

Download URL sauda-0.2.0.tar.gz
Size 310.0 kB
Tags Source
SHA-256 checksum
How to use checksums
6e1be9cfa92b859002c1729ad4b0ec45b6ac26d325bdd99d7df4f7993ba61abf
BLAKE2b-256 checksum
How to use checksums
7b785e7aecbf42dbdb0e8f7e019b7bf1900fb2a0f8c879449f561e97d9fbca47
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 3, 2026.

Transparency log

Release files / sauda-0.2.0-py3-none-win_amd64.whl

Download URL sauda-0.2.0-py3-none-win_amd64.whl
Size 2.6 MB
Tags Python 3 Windows x86-64
SHA-256 checksum
How to use checksums
3069f1ddb95ee5a63d273d6c6e9952c6cc3143b79597d4de2d1ffc80431b1892
BLAKE2b-256 checksum
How to use checksums
e7fda87fae34c2fc224e0c9e3cace27f7cd063c9170740d1eb3b1dc694ac6224
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 3, 2026.

Transparency log

Release files / sauda-0.2.0-py3-none-manylinux_2_28_x86_64.whl

Download URL sauda-0.2.0-py3-none-manylinux_2_28_x86_64.whl
Size 2.6 MB
Tags Linux glibc 2.28+ x86-64 Python 3
SHA-256 checksum
How to use checksums
3b32304c142dcbe106f948e607f720d9225998d2ef8fddd9d8e3fa43f985b723
BLAKE2b-256 checksum
How to use checksums
973efc7f8d7c716a52f161758c6fea37a25979ac0e4c585e344e5f66ac9793ff
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 3, 2026.

Transparency log

Release files / sauda-0.2.0-py3-none-macosx_11_0_arm64.whl

Download URL sauda-0.2.0-py3-none-macosx_11_0_arm64.whl
Size 2.4 MB
Tags Python 3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
426ddb10e271d063e3bc831ae06df9e655423f06115c7572c95eb38138a1826b
BLAKE2b-256 checksum
How to use checksums
d53f1df6435d3acf153e8182b55f82eb1cb6a67a0f4dda53bfecfd73f5943f3e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 3, 2026.

Transparency log

Release history Release notifications | RSS feed

0.2.1

4 release files

This release

0.2.0 This release

4 release files

0.1.3

3 release files

0.1.2

3 release files

0.1.1

3 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page