#web-apps #observability #wasm #web

emit_web

Instrument Web-based applications using emit

3 unstable releases

0.2.1 Jun 17, 2025
0.2.0 Feb 24, 2025
0.1.0 Feb 17, 2025

#1049 in Debugging

Download history 2/week @ 2025-09-11 13/week @ 2025-09-18

158 downloads per month

MIT/Apache

27KB
607 lines

emit_web

web

Current docs

Use emit in WebAssembly applications targeting NodeJS and the browser.

emit itself and some emitters, like emit_otlp support WebAssembly directly. This library includes support for emitting events to the Console API. It also has alternative clocks and randomness using different web features. These aren't required for configuration, but can be used to more directly control the JavaScript APIs emit makes use of.

emit_web also supports the wasm32v1-none target.

Getting started

First, add emit and emit_web to your Cargo.toml:

[dependencies.emit]
version = "1"
features = ["std", "implicit_rt"]

[dependencies.emit_web]
version = "0.2.1"

Next, configure emit to use web APIs in its runtime:

use wasm_bindgen::prelude::*;

#[wasm_bindgen]
pub fn setup() {
    let _ = emit::setup()
        .emit_to(emit_web::console())
        .try_init();
}

The name of this setup function doesn't matter, you'll just need to call it somewhere early in your application.

Output

emit_web will output events to the Console API, where they'll appear in browser dev tools.

emit events written to the browser console

Dependencies

~5MB
~55K SLoC