All Projects → HenningHolmDE → hcloud-rust

HenningHolmDE / hcloud-rust

Licence: other
Unofficial Rust crate for accessing the Hetzner Cloud API

Programming Languages

rust
11053 projects

Projects that are alternatives of or similar to hcloud-rust

hcloud-ruby
Native ruby client for HetznerCloud
Stars: ✭ 29 (+31.82%)
Mutual labels:  hetzner, hetzner-cloud, hcloud
ui-driver-hetzner
Rancher UI driver for the Hetzner Cloud docker driver.
Stars: ✭ 238 (+981.82%)
Mutual labels:  hetzner, hetzner-cloud, hcloud
wireguard-setup
WireGuard and Unbound setup with Packer and Terraform.
Stars: ✭ 55 (+150%)
Mutual labels:  hetzner, hetzner-cloud, hcloud
hetzner.hcloud
A collection containing modules to manage resources on the Hetzner Cloud.
Stars: ✭ 58 (+163.64%)
Mutual labels:  hetzner, hetzner-cloud, hcloud
hcloud-pricing-exporter
A prometheus exporter for the current pricing and costs of your HCloud account
Stars: ✭ 19 (-13.64%)
Mutual labels:  hetzner, hetzner-cloud, hcloud
hetzner-k3s
A Ruby gem (and Docker image) to install and manage Kubernetes clusters in Hetzner Cloud using the lightweight distribution k3s by Rancher.
Stars: ✭ 201 (+813.64%)
Mutual labels:  hetzner, hetzner-cloud
kube-hetzner
Optimized and Maintenance-free Kubernetes on Hetzner Cloud in one command!
Stars: ✭ 937 (+4159.09%)
Mutual labels:  hetzner-cloud, hcloud
docker-volume-hetzner
Docker Volume Plugin for accessing Hetzner Cloud Volumes
Stars: ✭ 81 (+268.18%)
Mutual labels:  hetzner, hetzner-cloud
packer-builder-hcloud
Packer builder plugin for Hetzner Cloud - https://hetzner.cloud
Stars: ✭ 24 (+9.09%)
Mutual labels:  hetzner, hetzner-cloud
hetzner-rescaler
Lightweight CLI tool to programmatically rescale your Hetzner virtual server daily to optimize your budget spending
Stars: ✭ 44 (+100%)
Mutual labels:  hetzner, hetzner-cloud
molecule-hetznercloud
Molecule Hetzner Cloud driver 💀
Stars: ✭ 21 (-4.55%)
Mutual labels:  hetzner, hetzner-cloud
hcloud-ip-floater
k8s controller for Hetzner Cloud floating IPs
Stars: ✭ 43 (+95.45%)
Mutual labels:  hetzner, hcloud
minectl
minectl 🗺 is a cli for creating Minecraft server on different cloud provider.
Stars: ✭ 85 (+286.36%)
Mutual labels:  hetzner, hetzner-cloud
cluster-api-provider-hcloud
Cluster API infrastructure provider for Hetzner's Hcloud
Stars: ✭ 26 (+18.18%)
Mutual labels:  hetzner, hcloud
nodejs-searchitunes
Lightweight node.js module to quickly search Apple's iTunes Store for music, movies, apps, etc.
Stars: ✭ 25 (+13.64%)
Mutual labels:  api-client
pocket-api
A python wrapper around GetPocket API V3.
Stars: ✭ 103 (+368.18%)
Mutual labels:  api-client
fetch
Isomorphic Wordpress API client and React hooks - super tiny, super fast.
Stars: ✭ 47 (+113.64%)
Mutual labels:  api-client
cv4pve-api-dotnet
Proxmox VE Client API .Net C#
Stars: ✭ 25 (+13.64%)
Mutual labels:  api-client
tweetsOLAPing
implementing an end-to-end tweets ETL/Analysis pipeline.
Stars: ✭ 24 (+9.09%)
Mutual labels:  api-client
pushover
Go wrapper for the Pushover API
Stars: ✭ 112 (+409.09%)
Mutual labels:  api-client

hcloud for Rust

Crates.io Documentation Build and test

Unofficial Rust crate for accessing the Hetzner Cloud API

Overview

The hcloud crate can be used for managing the endpoints provided by the Hetzner Cloud API in your Rust project.

The API client code of this crate has been auto-generated from the Unofficial OpenAPI Description for the Hetzner Cloud API using OpenAPI Generator.

Current state of development

  • supported API endpoints (complete as of January 2022): actions, certificates, datacenters, firewalls, floating_ips, images, isos, load_balancer_types, load_balancers, locations, networks, pricing, placement_groups, server_types, servers, ssh_keys, volumes
  • asynchronous API functions
  • pagination support
  • documentation and tests are still WIP

Selecting TLS implementation

The underlying TLS implementation for reqwest can be selected using Cargo features:

  • default-tls (enabled by default): Provides TLS support to connect over HTTPS.
  • native-tls: Enables TLS functionality provided by native-tls.
  • native-tls-vendored: Enables the vendored feature of native-tls.
  • rustls-tls: Enables TLS functionality provided by rustls.

(Refer to Optional Features in the reqwest documentation.)

Example for using the TLS functionality provided by rustls:

[dependencies]
hcloud = { version = "*", default-features = false, features = ["rustls-tls"] }

Example

A very basic example for listing all existing servers:

use hcloud::apis::configuration::Configuration;
use hcloud::apis::servers_api;

// set up basic configuration using API token
let mut configuration = Configuration::new();
configuration.bearer_access_token =
   Some("YOUR_HCLOUD_API_TOKEN".to_string());

// get list of all existing servers from servers API
let servers = servers_api::list_servers(&configuration, Default::default())
   .await?
   .servers;

// handle server data
for server in servers {
   println!("{:?}", server);
}

License

Licensed under either of

at your option.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].