Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/kkostov/telemetrydeck-wasm

(unofficial) TelemetryDeck client for fast and reliable libraries and apps using Rust and WebAssembly
https://github.com/kkostov/telemetrydeck-wasm

analytics api-bindings high-performance privacy rust wasm works-with-yew

Last synced: about 4 hours ago
JSON representation

(unofficial) TelemetryDeck client for fast and reliable libraries and apps using Rust and WebAssembly

Awesome Lists containing this project

README

        

[![Tests](https://github.com/kkostov/telemetrydeck-wasm/actions/workflows/tests.yml/badge.svg)](https://github.com/kkostov/telemetrydeck-wasm/actions/workflows/tests.yml)
[![Lint & Format](https://github.com/kkostov/telemetrydeck-wasm/actions/workflows/lint.yml/badge.svg)](https://github.com/kkostov/telemetrydeck-wasm/actions/workflows/lint.yml)
[![Crate](https://img.shields.io/crates/v/telemetrydeck-wasm.svg)](https://crates.io/crates/telemetrydeck-wasm)
[![API](https://docs.rs/telemetrydeck-wasm/badge.svg)](https://docs.rs/telemetrydeck-wasm)

# TelemetryDeck Client

Client for integrating private analytics in fast and reliable libraries and apps using Rust and WebAssembly

The library provides a wrapper around the [TelemetryDeck](https://telemetrydeck.com) endpoint for broadcasting signals.

## Sending a signal

```rust

let client = TelemetryDeck::new("XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX");

// Signal a type and a user identifier
client.send("addOne", Some("user"), None, None);

// Signal with custom payload parameters
client.send(
"signalType",
Some("user identifier"),
Some(HashMap::from([("key".to_string(), "value".to_string())])),
None,
);
```

## Session identifier

When an instance of `TelemetryDeck` is created, it is assigned a session identifier. This identifier persists for all outgoing signals during the lifetime of the instance.

You can reset the session identifier without recreating the client:

```rust
client.reset_session(None)
```

You can also provide your own session identifier:

```rust
client.reset_session(Some("my session id".to_string()));
```

Check the example folder for a working app using [Yew](https://yew.rs).

## Disclaimer

This repository is not affiliated with [TelemetryDeck](https://telemetrydeck.com).