#peer #router #wamp #messagepack

battler-wamp

Asynchronous library for WAMP messaging

4 releases

new 0.2.2 Jan 17, 2025
0.2.1 Jan 17, 2025
0.2.0 Jan 11, 2025
0.1.0 Jan 1, 2025

#120 in WebSocket

Download history 164/week @ 2025-01-01 141/week @ 2025-01-08

305 downloads per month
Used in battler-wamprat

MIT license

260KB
6.5K SLoC

battler-wamp

Latest Version

battler-wamp is an implementation of the Web Application Message Protocol (WAMP) for Rust.

The library implements the WAMP protocol for both routers and peers (a.k.a., servers and clients).

The library uses tokio as its asynchronous runtime, and is ready for use on top of WebSocket streams.

For writing peers that desire strongly-typed messaging (including procedure calls and pub/sub events), use battler-wamprat.

What is WAMP?

WAMP is an open standard, routed protocol that provides two messaging patterns: Publish & Subscribe and routed Remote Procedure Calls. It is intended to connect application components in distributed applications. WAMP uses WebSocket as its default transport, but it can be transmitted via any other protocol that allows for ordered, reliable, bi-directional, and message-oriented communications.

The WAMP protocol specification is described at https://wamp-proto.org/spec.html.

Features

  • Basic Profile
    • Realms
    • Publish and Subscribe (Pub/Sub)
    • Remote Procedure Calls (RPC)
    • Sessions
    • Ordering Guarantees
    • Error URIs
  • Advanced Profile
    • Feature Announcement
    • Advanced RPC Features
      • Progressive Call Results
      • Call Timeout
      • Call Canceling
      • Pattern-based Registration
      • Shared Registration
    • Advanced Pub/Sub Features
      • Publisher Exclusion
      • Pattern-based Subscription
  • Transports
    • WebSocket
    • JSON serializer
    • MessagePack serializer

Dependencies

~15–27MB
~480K SLoC