OUCH 5.0 Client Library#

Production-ready C++ client library for the Nasdaq OUCH 5.0 protocol.

Features#

  • Type-Safe API: Strongly-typed message classes with compile-time checking

  • Thread-Safe Design: Clear thread safety model with IOContext-based event loop

  • Message Buffering: Optional retransmission support for reliable message delivery

  • UserRefNum Management: Automatic strictly-increasing reference number generation

  • TagValue Support: Full support for variable-length message appendages

  • Zero Runtime Dependencies: All dependencies statically linked

Getting Started#

#include <nasdaq/ouch50/Session.h>
#include <nasdaq/ouch50/net/IOContext.h>

using namespace b2bits::nasdaq::ouch5;

// Create IO context
auto io_ctx = std::make_shared<IOContext>(IOContext::Settings{"main", 0, false});
io_ctx->start();

// Configure session
Settings settings;
settings.transport_.username_ = "TRADER01";
settings.transport_.password_ = "password123";
settings.transport_.remote_a_ = Endpoint{"host", port};
settings.initial_user_ref_num_ = 1;

// Create session
Session session(io_ctx, settings);

// Login and start trading
session.login("", 0, std::chrono::milliseconds(2000));

See the Quick Start Guide for a complete example.

Documentation#

This documentation covers:

  • Getting Started: Installation, configuration, and basic usage

  • API Reference: Complete API documentation for all classes and methods

  • Protocol Specification: Detailed OUCH 5.0 protocol reference

  • Examples: Working code examples for common scenarios

  • Guides: Thread safety, error handling, and best practices

License#

Copyright © 2026 EPAM B2Bits. OUCH 5.0 Documentation