#async #tonic #tracing #tokio-console


Protobuf wire format bindings for the Tokio console

9 releases (breaking)

new 0.7.0 Jun 10, 2024
0.6.0 Sep 29, 2023
0.5.0 May 9, 2023
0.4.0 Aug 10, 2022
0.1.0 Dec 16, 2021

#516 in Debugging

Download history 83373/week @ 2024-02-22 82241/week @ 2024-02-29 81430/week @ 2024-03-07 80038/week @ 2024-03-14 83739/week @ 2024-03-21 95763/week @ 2024-03-28 77634/week @ 2024-04-04 86330/week @ 2024-04-11 90121/week @ 2024-04-18 80437/week @ 2024-04-25 80003/week @ 2024-05-02 79705/week @ 2024-05-09 97276/week @ 2024-05-16 97263/week @ 2024-05-23 99735/week @ 2024-05-30 78732/week @ 2024-06-06

388,771 downloads per month
Used in 73 crates (2 directly)

MIT license

1.5K SLoC

tokio-console API

🛰 Tonic bindings for the tokio-console protobuf wire format.

crates.io Documentation Documentation (main branch) MIT licensed Build Status Discord chat

Website | Chat | API Documentation


This crate contains generated protobuf bindings for the tokio-console wire format. The wire format is used to export diagnostic data from instrumented applications to consumers that aggregate and display that data.

tokio-console is a debugging and profiling tool for asynchronous Rust applications, which collects and displays in-depth diagnostic data on the asynchronous tasks, resources, and operations in an application. The console system consists of two primary components:

  • instrumentation, embedded in the application, which collects data from the async runtime and exposes it over the console's wire format
  • consumers, such as the tokio-console command-line application, which connect to the instrumented application, receive telemetry data, and display it to the user

The wire format protobuf bindings in this crate are used by both the instrumentation in the console-subscriber crate, which emits telemetry in this format, and by the clients that consume that telemetry.

In general, most tokio-console users will not depend on this crate directly. Applications are typically instrumented using the console-subscriber crate, which collects data and exports it using this wire format; this data can be consumed using the tokio-console command-line application. However, the wire format API definition in this crate may be useful for anyone implementing other software that also consumes the tokio-console diagnostic data.


⚠️ The protobuf wire format is not currently considered totally stable. While we will try to avoid unnecessary protobuf-incompatible changes, protobuf compatibility is only guaranteed within SemVer-compatible releases of this crate. For example, the protobuf as of console-api v0.2.5 may not be backwards-compatible with console-api v0.1.12.

Crate Feature Flags

This crate provides the following feature flags:

Getting Help

First, see if the answer to your question can be found in the API documentation. If the answer is not there, there is an active community in the Tokio Discord server. We would be happy to try to answer your question. You can also ask your question on the discussions page.


🎈 Thanks for your help improving the project! We are so happy to have you! We have a contributing guide to help you get involved in the Tokio console project.

Supported Rust Versions

The Tokio console is built against the latest stable release. The minimum supported version is 1.64. The current Tokio console version is not guaranteed to build on Rust versions earlier than the minimum supported version.


This project is licensed under the MIT license.


Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in Tokio by you, shall be licensed as MIT, without any additional terms or conditions.


~267K SLoC