10 releases

0.1.9 Jan 16, 2023
0.1.8 Mar 19, 2022
0.1.4 Jan 16, 2022

#46 in Value formatting

28 downloads per month

MIT license

82KB
2K SLoC

hrobot-rs Latest Version Docs

Hetzner Robot API Client library for Rust.

Uses the blocking Reqwest client and rustls under the hood.

Disclaimer: the authors are not associated with Hetzner (except as customers), and the crate is in no way endorsed or supported by Hetzner Online GmbH.

API Endpoint Implementation Progress

  • Failover: Not implemented.
  • Traffic: Not implemented.
  • Server Ordering: Not implemented. I'm not made of money!
  • Storage Box: Not implemented.
  • ⚠️ Firewall
    • ✅ get & update firewall rules & configuration directly.
    • ❌ create, modify or delete firewall templates.
    • ❌ apply firewall templates.
  • ⚠️ IP
    • ✅ get ip address information.
    • ✅ get mac address information.
    • ❌ update traffic warnings for IP.
    • ❌ modify or delete additional MAC-addresses.
  • ⚠️ Subnet
    • ✅ list & get subnets.
    • ❌ update traffic warnings for subnet.
    • ❌ get subnet MAC.
    • ❌ update subnet MAC.
    • ❌ delete subnet MAC.
  • vSwitch: All functionality implemented.
  • Server: All functionality implemented.
  • Reset: All functionality implemented.
  • Wake On Lan: All functionality implemented.
  • Boot Configuration: All functionality implemented (but some untested due to costs of add-ons).
  • Reverse DNS: All functionality implemented.
  • SSH Keys: All functionality implemented.

Testing

Testing relies on $HROBOT_USERNAME and $HROBOT_PASSWORD being defined in the environment, corresponding to a Hetzner WebService/app login.

Some of the tests which interact with the Hetzner API can be disruptive, and therefore any test which interacts with Hetzner is marked as #[ignore] just in case cargo test is accidentally run while the HROBOT_USERNAME and HROBOT_PASSWORD environment variables are available. To explicitly run these potentially disruptive tests, either use cargo test -- --ignored to run all of them, or run the test explicitly using cargo test server::tests::list_servers -- --ignored

Dependencies

~4–12MB
~252K SLoC