Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

tauri-plugin-sse-api

mipster00.1.1TypeScript support: included

Crates.io Version License

readme

Tauri Plugin SSE

Crates.io Version License

Server-Sent Events (SSE) is a web technology that allows a server to push real-time updates to a client over a long-lived HTTP connection.

It provides a lightweight, one-way communication channel, making it ideal for applications that need continuous data streaming from the backend without using WebSockets.

SSE is a simple solution for notifications, activity feeds, live status updates, or any scenario where the server needs to send real-time updates to the client.

This project uses the sse_client crate for handling SSE connections on the Rust side (Tauri's backend).

Sample Usage:

  • Realtime activity feeds or notifications
  • Live server logs
  • Monitoring application state
  • Synchronizing lightweight UI updates
Platform Supported
Linux
Windows
macOS not tested
Android not tested
iOS not tested

Installation

Usage

TypeScript/JavaScript

import EventSource from "tauri-plugin-sse";

// Create connection to server endpoint
const source = new EventSource("https://sse.dev/test");

// Handle on establishing connection
source.onopen = () => {
  console.log("Connection stabilished!");
};

// Fired when a message is received
source.onmessage = (event) => {
  console.log("Message from server:", event.data);
};

// Handle errors
source.onerror = (err) => {
  console.error("EventSource failed:", err);
};

// Handle named event types
source.addEventListener("ping", (event) => {
  console.log("Ping:", event.data);
});

// Remove handler
removeEventListener("ping");

// Close Event Source
source.close();

Rust

//  TODO: Add use of right modules

// Create connection to server endpoint
let event_source = EventSource::new("https://sse.dev/test").unwrap();

// Handle on establishing connection
event_source.on_open(|| {
    println!("Connection stabilished!");
});

// Fired when a message is received
event_source.on_message(|message| {
    println!("New message event {:?}", message);
});

// Handle errors
event_source.on_error(|error| {
    println!("Error {:?}", error);
});

// Handle named event types
event_source.add_event_listener("myEvent", |event| {
    println!("Event {} received: {}", event.type_, event.data);
});

// Remove handler
event_source.remove_event_listener("myEvent");

// Close Event Source
event_source.close();

Licenses

MIT or MIT/Apache 2.0 where applicable.