https://github.com/coder/coder.rs
[EXPERIMENTAL] Asynchronous Rust wrapper around the Coder Enterprise API
https://github.com/coder/coder.rs
Last synced: 15 days ago
JSON representation
[EXPERIMENTAL] Asynchronous Rust wrapper around the Coder Enterprise API
- Host: GitHub
- URL: https://github.com/coder/coder.rs
- Owner: coder
- License: mit
- Created: 2020-08-06T17:07:34.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2020-08-24T16:52:25.000Z (over 4 years ago)
- Last Synced: 2025-04-02T22:35:28.603Z (23 days ago)
- Language: Rust
- Homepage: https://coder.com
- Size: 524 KB
- Stars: 11
- Watchers: 6
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
[![Crates.io][crates-badge]][crates-url]
[![Docs.rs][docs-badge]][docs-url]
[![MIT licensed][mit-badge]][mit-url]
# coder.rs
An asynchronous, pure Rust wrapper around the [Coder](https://coder.com) Enterprise API.
This is currently experimental. Not all routes have been implemented and the API is expected to
change.## Installation
Coder.rs has been tested to work on Rust 1.40+
Add this to your `Cargo.toml`'s `[dependencies]` section:
```toml
coder = { version = "0.3", features = ["rustls"] }
```## Usage
Coder provides the [`coder::Coder`](https://docs.rs/coder/latest/coder/client/struct.Coder.html)
struct for creating requests.```rust
use std::env;
use std::error::Error;use coder::{Coder, Executor};
#[tokio::main]
async fn main() -> Result<(), Box> {
let url = env::var("MANAGER_URL")?;
let api_key = env::var("API_KEY")?;
let c = Coder::new(url, api_key)?;let res = c.users().me().execute().await?;
dbg!(res);Ok(())
}// [src/bin/main.rs:19] res = ApiResponse {
// headers: Headers(
// {
// "server": "openresty/1.15.8.2",
// "date": "Wed, 05 Aug 2020 05:05:11 GMT",
// "content-type": "application/json",
// "content-length": "653",
// "vary": "Accept-Encoding",
// "vary": "Origin",
// "strict-transport-security": "max-age=15724800; includeSubDomains",
// "coder-version": "1.9.0-rc1-220-gd2a04f83a",
// "x-envoy-upstream-service-time": "20",
// },
// ),
// status_code: 200,
// response: Ok(
// User {
// id: "5e876cf4-10abe9b2e54eb609c5ec1870",
// name: "Colin Adler",
// username: "colin",
// email: "[email protected]",
// dotfiles_git_uri: "",
// roles: [
// "site-manager",
// "site-auditor",
// ],
// avatar_hash: "28707dc83fdcba2cacaa3ad5e381b34b7cb37b74",
// key_regenerated_at: 2020-04-03T17:05:56.964782Z,
// created_at: 2020-04-03T17:05:56.964782Z,
// updated_at: 2020-05-29T18:10:33.532351Z,
// },
// ),
// }
```## Features
* `rustls` - Uses the [`rustls`](https://docs.rs/rustls/) pure Rust TLS implementation. (default)
* `rust-native-tls` - Uses [`native-tls`](https://docs.rs/native-tls/) for TLS which links against the OS default.[crates-badge]: https://img.shields.io/crates/v/coder.svg
[crates-url]: https://crates.io/crates/coder
[docs-badge]: https://docs.rs/coder/badge.svg
[docs-url]: https://docs.rs/coder
[mit-badge]: https://img.shields.io/badge/license-MIT-blue.svg
[mit-url]: https://github.com/coadler/coder.rs/blob/master/LICENSE
[logo-url]: https://raw.githubusercontent.com/cdr/coder.rs/master/logo.png