Examples / Transport

Ping Pong (Gradle)

myra-codec-transport-ping-pong-gradle

Codec + Transport ping and pong with registered buffers and generated payloads.

Transport Gradle Java 25 View source

Overview

This demo uses Myra Codec to generate a payload and Myra Transport to send ping and pong messages between a client and server. Registered buffers and the NIO backend are configured via TransportConfig.

Clone and run

  1. Install Java 25 and Git, then confirm the toolchain.

    java --version
  2. Clone the examples repository.

    git clone https://github.com/mvp-express/examples.git
  3. Move into the Gradle ping pong example folder.

    cd examples/myra-codec-transport-ping-pong-gradle
  4. Generate sources and the lock file.

    ./gradlew codegen
  5. Start the server in one terminal.

    ./gradlew runServer
  6. Start the client in another terminal.

    ./gradlew runClient

The Gradle tasks enable preview and native access flags automatically. On Windows, use gradlew.bat.

Concepts highlighted

  • Codec generated Payload message for ping and pong.
  • TransportConfig with the NIO backend and registered buffers enabled.
  • Server side polling via TransportBackend and explicit send/receive flow.
  • Client side Transport with callbacks in TransportHandlerAdapter.
  • Pooled buffers and scratch segments for low allocation throughput.

Files to explore

  • src/main/resources/schemas/ping_pong.myra.yml
  • src/main/java/express/mvp/myra/examples/pingpong/PingPongServer.java
  • src/main/java/express/mvp/myra/examples/pingpong/PingPongClient.java

At a glance

  • Type: Codec + Transport
  • Build: Gradle
  • Main: PingPongServer, PingPongClient
  • Schema: ping_pong.myra.yml
  • Ports: 127.0.0.1:9000
Open on GitHub

Learn more

See how Myra Transport uses io_uring and fallback backends.

Myra Transport Docs