# ESPHome.rs ESPHome API client for Rust. ## Usage ````rust use esphome::Connection; use std::net::TcpStream; let mut stream = TcpStream::connect(opt.address)?; let mut write_stream = stream.try_clone()?; let connection = Connection::new(&mut stream, &mut write_stream); let device = connection.connect()?; println!("Connected to {}", device.server_info()); if let Some(password) = opt.password { let ad = device.authenticate(&password)?; // ... } ```` ## Running an example ````sh cargo run --example connect -- -a some.device:6053 -p some_password ```` ## License [MIT](./LICENSE.txt) except for the following: * [src/api.proto](./src/api.proto) and [src/api_options.proto](./src/api_options.proto): copied from [the aioesphomeapi repository](https://github.com/esphome/aioesphomeapi/tree/main/aioesphomeapi) under the MIT license.