Skip to content

Rust client with NAPI bindings for ESPHome native API

Notifications You must be signed in to change notification settings

kovapatrik/esphomeapi

Repository files navigation

esphomeapi

Rust implementation of the ESPHome native API, with Node.js bindings.

Crates

esphomeapi                    Low-level ESPHome API client
  └── esphomeapi-manager      Entity/state management layer
        └── esphomeapi-manager-node  Node.js bindings (NAPI)

esphomeapi — Pure Rust client for the ESPHome native API. Handles TCP connections, Noise protocol encryption, protobuf serialization, and mDNS discovery. Can be used as a standalone Rust crate.

esphomeapi-manager — Higher-level abstraction over esphomeapi. Manages entity lifecycle (lights, switches, sensors, etc.), state subscriptions, and event routing. Can be used as a standalone Rust crate.

esphomeapi-manager-node — NAPI bridge that exposes esphomeapi-manager to Node.js/TypeScript. Published to npm as @kovapatrik/esphomeapi-manager.

Releases

Releases are automated via release-please. Merge PRs using Conventional Commits and a release PR is opened automatically.

Commit prefix Version bump
fix: patch
feat: minor
feat!: / BREAKING CHANGE: major

Pre-releases (beta, alpha, etc.) can be published manually from the Release workflow using the workflow_dispatch trigger.

Contributing

See CLAUDE.md for architecture overview, build commands, and development workflow.

About

Rust client with NAPI bindings for ESPHome native API

Resources

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •