wireframe 0.3.0

Simplify building servers and clients for custom binary protocols.
Documentation
Feature: Client structured logging and tracing spans
  The wireframe client emits tracing spans and structured events around
  connect, send, receive, call, streaming, and close operations.
  Per-command timing can be enabled via TracingConfig.

  Scenario: Connect emits a tracing span with the peer address
    Given a running echo server for tracing tests
    And a client with connect timing enabled
    When the client connects to the server
    Then the tracing output contains "client.connect"
    And the tracing output contains the peer address

  Scenario: Send emits a tracing span with frame size
    Given a connected tracing client with send timing enabled
    When the client sends an envelope via the tracing client
    Then the tracing output contains "client.send"
    And the tracing output contains "frame.bytes"

  Scenario: Receive emits a tracing span recording result
    Given a connected tracing client with receive timing enabled
    When the client sends and receives via the tracing client
    Then the tracing output contains "client.receive"

  Scenario: Per-command timing emits elapsed microseconds
    Given a connected tracing client with send timing enabled
    When the client sends an envelope via the tracing client
    Then the tracing output contains "elapsed_us"

  Scenario: Timing is not emitted when disabled
    Given a connected tracing client with default config
    When the client sends an envelope via the tracing client
    Then the tracing output does not contain "elapsed_us"

  Scenario: Close emits a tracing span
    Given a connected tracing client with close timing enabled
    When the tracing client closes the connection
    Then the tracing output contains "client.close"