Skip to content

Messages & wire (message)

Message types, msgId, serialization, and partial-field send / overrides — the network-facing bundle.

Which protocol strings are interop vs Deuk native: start at Wire protocol families.


In IDL

  • message is a struct shaped for network naming conventions; field IDs and required rules follow Thrift/Deuk rules.
  • Services: Thrift-style service / methods stay in the AST as RPC definitions (bindings depend on generators/runtime).

Protocols & registries

  • ProtocolRegistry: maps message types ↔ msgId (and related ids) for dispatch and serialization routing.
  • CLI --protocol / wireFamily: see the table in Wire protocol families. Interop Thrift (tbinary, etc.) is centered on generated C# / C++; JS can use the same wire with interopRootStruct on options, or pack / json / yaml without schema.
  • C#: IDeukPackReader / IDeukPackWriter per protocol.
  • --wire-profile: subset / DTO-style emit. See Wire profile subset.

Unified Write (subset fields & overrides)

  • C#: Write(oprot, fieldIds, overrides?)fieldIds non-null ⇒ only those fields; overrides ⇒ per-field ID replacement values; use null for unused parameters.
  • JavaScript: toJson / toBinary (and pack helpers) with the same (obj, fieldIds, overrides) shape.

Tutorial: Unified Write tutorial
Deep API: DEUKPACK_WRITE_WITH_OVERRIDES_API
Tables in API reference — Unified Write.


Hands-on (DeukPack Kits)

Product story: Protocol.