npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@zubridge/tauri

v1.1.0

Published

A streamlined state management library for Tauri applications using Zustand.

Downloads

214

Readme

Cross-platform state without boundaries: Zustand-inspired simplicity for Tauri

Why Zubridge?

tldr: I want to seamlessly interact with my Rust backend state using Zustand-inspired hooks.

Zustand provides a simple and effective state management pattern. In Tauri applications, managing state consistently between the Rust backend (where the authoritative state often resides) and multiple frontend windows can be complex.

Zubridge @zubridge/tauri simplifies this by providing hooks (useZubridgeStore, useZubridgeDispatch) that connect your frontend components to your Rust backend state, abstracting away the necessary Tauri command invocations and event listening.

How It Works

Zubridge creates a bridge between your Rust backend state and your frontend JavaScript. Your Rust backend holds the source of truth, while the frontend uses hooks to access and update this state.

  1. Backend: Register the tauri-plugin-zubridge plugin with your app state
  2. Backend: Implement the StateManager trait to handle state changes
  3. Frontend: Initialize the bridge with @zubridge/tauri
  4. Frontend: Access state with useZubridgeStore and dispatch actions with useZubridgeDispatch

Features

  • Simple State Management: Connect frontend components to Rust backend state using Zustand-like hooks
  • Standard Interface: Consistent pattern for dispatching actions and receiving updates
  • Type Safety: Strong typing for both Rust and TypeScript sides
  • Multi-Window Support: Automatic state synchronization across multiple windows
  • Minimal Boilerplate: Reduced code for state management through the official plugin
  • Frontend Flexibility: Works with React, other frontend frameworks, or vanilla JavaScript
  • Tauri Version Support: Compatible with both Tauri v1 and v2 APIs via dependency injection

Installation

Rust Backend

# Cargo.toml
[dependencies]
tauri-plugin-zubridge = "0.1.0"
serde = { version = "1.0", features = ["derive"] }

Frontend

# Using npm
npm install @zubridge/tauri @tauri-apps/api

Or use your dependency manager of choice, e.g. pnpm, yarn.

Quick Start

  1. Define your application state and implement the StateManager trait in your Rust backend
  2. Register the tauri-plugin-zubridge plugin in your Tauri application
  3. Initialize the bridge in your frontend with initializeBridge({ invoke, listen })
  4. Access state with useZubridgeStore and dispatch actions with useZubridgeDispatch

For detailed implementation examples, see our Getting Started Guide.

Documentation

For more detailed documentation, see:

Example Applications

Complete example applications demonstrating the use of @zubridge/tauri:

Direct Architecture

Plugin Architecture

License

MIT