Skip to content

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

 
 
 

Contributors