📡 Nasdaq Protocols Python Library
nasdaq-protocols contains client-side implementations of the various publicly available
protocols used across the Nasdaq ecosystem.
This package provides only the core implementations -- message serialization, deserialization, message validation and session handling. It does not ship any concrete application messages exchanged between client and server: those are application/protocol-specific and are defined by the user of this library by extending the base message classes provided here.
📚 Full documentation: nasdaq.github.io/nasdaq-protocols
✨ Supported protocols
| Protocol | Description | User guide | API reference |
|---|---|---|---|
| 🧦 SOUP (SoupBinTCP) | Sequenced message delivery transport underlying the app protocols below | guide | reference |
| 🛒 OUCH | Order entry protocol | guide | reference |
| 📈 ITCH | Market data feed protocol | guide | reference |
| 💬 SQF | Quote feed protocol | guide | reference |
| 🔁 FIX | FIX session layer (44/50), with session-level sequence gap detection/recovery | guide | reference |
Application-specific messages for any of the protocols above are defined by generating a new
companion package with the bundled nasdaq-protocols-create-new-project CLI -- see the
Create New Project guide.
🚀 Quickstart
pip install nasdaq-protocols
import asyncio
from nasdaq_protocols import soup
async def main():
session = await soup.connect_async(
('hostname', 1234),
'username', # max 6 characters
'password', # max 10 characters
sequence=1, # 0 = from HEAD, 1 = from start, n = from sequence n
)
message = await session.receive_msg()
print(message)
await session.close()
asyncio.run(main())
See the User Guide for a walkthrough of each protocol, and the Create New Project guide for defining your own application messages.
⚡ Performance
For improved throughput, install the optional performance dependencies:
pip install nasdaq-protocols[performance]
This installs uvloop (Linux/macOS only), which provides ~4-5x faster event loop scheduling.
To activate it, call early in your application before any asyncio work:
from nasdaq_protocols.common import use_fast_loop
use_fast_loop()
If uvloop is not installed, use_fast_loop() is a no-op.
🛠️ Contributing
Contributions are welcome! See CONTRIBUTING.md for the development workflow, and the Developer's Guide for more detail.
📄 License
This project is licensed under the MIT License.
📝 Changelog
See CHANGELOG.md for release history.
Metadata
Release files for nasdaq-protocols 1.3.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| nasdaq_protocols-1.3.0.tar.gz | 162.0 kB | With provenance | Details for nasdaq_protocols-1.3.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| nasdaq_protocols-1.3.0-py3-none-any.whl | Python 3 | none | any | Details for nasdaq_protocols-1.3.0-py3-none-any.whl |
Total release size: 233.0 kB
Release files / nasdaq_protocols-1.3.0.tar.gz
| Download URL | nasdaq_protocols-1.3.0.tar.gz |
|---|---|
| Size | 162.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
4f7b0fccc042bcf3f3b5b97fcb02bf10914f1b8da29002b391e8cb76171f1bd0
|
|
BLAKE2b-256 checksum How to use checksums |
8857469ef2070c12b400babfd1afe3faff2981fa0f4bdd7660dc5f2567ba8077
|
| 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 10, 2026.
Transparency logRelease files / nasdaq_protocols-1.3.0-py3-none-any.whl
| Download URL | nasdaq_protocols-1.3.0-py3-none-any.whl |
|---|---|
| Size | 71.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
65fc1b024af743db0655c917d04714c79b57aa96305ca5ec78ea016f922ddd37
|
|
BLAKE2b-256 checksum How to use checksums |
0213779e5924e658269f185252881cfc87b574839b7557914f40371af0de48fb
|
| 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 10, 2026.
Transparency logSecurity for nasdaq-protocols 1.3.0
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.
Full provenance
All 2 files in this release have been uploaded with provenance metadata.
Attestation for nasdaq_protocols-1.3.0.tar.gz
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 10, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.