# ngrok   ![Build] [![Crate]](https://crates.io/crates/ngrok) [![Docs]](https://docs.rs/ngrok/) [build]: https://github.com/nkconnor/ngrok/workflows/tests/badge.svg [crate]: https://img.shields.io/crates/v/ngrok [docs]: https://docs.rs/ngrok/badge.svg A minimal and concise [`ngrok`](https://ngrok.com/) wrapper for Rust. The library has many use cases, for example: - open public HTTP tunnels to your development server(s) for integrations tests - simplified networking and development on devices like a Raspberry Pi TCP support, while not available, should be trivial to support. Tested on windows ✅ ## Getting Started ```toml [dependencies] ngrok-wrapper = "0.5.0" ``` ## Usage ```rust use ngrok_wrapper; use url::Url; fn main() -> std::io::Result<()> { let tunnel = ngrok_wrapper::builder() .http() .port(8556) .executable("./ngrokclinet.exe") .run()?; let public_url: &Url = tunnel.http()?; println!("Tunnel is open at {:?}", public_url.as_str()); Ok(()) } ``` This assumes that `ngrok` is on your path. To change this, use the `.executable()` method in the builder when creating your tunnel. ## License Licensed under either of Apache License, Version 2.0 or MIT license at your option. Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in `ngrok` by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.