remoteit-api 0.14.1

A wrapper around the Remote.it GraphQL API, also implementing the custom request signing.
Documentation
[package]
name = "remoteit-api"
version = "0.14.1"
edition = "2024"
authors = ["Feriixu <remoteit-api.9iois@passmail.net>"]
description = "A wrapper around the Remote.it GraphQL API, also implementing the custom request signing."
license = "MIT OR Apache-2.0"
repository = "https://github.com/Feriixu/remoteit-api-wrapper-rs"
keywords = ["remoteit", "api", "wrapper", "graphql", "client"]
categories = ["api-bindings"]



[package.metadata.docs.rs]
all-features = true


[features]
default = []

# Enables the credentials loader, which can be used to load remote.it credentials from a file.
credentials_loader = ["dep:dirs", "dep:config"]

# Enabled the blocking API, which is used to make blocking requests to the remote.it API.
blocking = ["dep:reqwest", "reqwest/blocking"]

# Enables the async API, which is used to make async requests to the remote.it API.
async = ["dep:reqwest"]

# Enables file upload support. See https://docs.remote.it/developer-tools/device-scripting#uploading-a-script
# This feature on its own does not provide the necessary functionality to upload files. You need to also enable either async or blocking.
file_upload = [
    "dep:reqwest",
    "dep:tokio",
    "dep:tokio-util",
    "reqwest/multipart",
    "reqwest/stream"]

native-tls-vendored = ["reqwest/native-tls-vendored"]


[lints.rust]
missing_docs = "deny"


[lints.clippy]
pedantic = "warn"
cargo = "warn"
missing_errors_doc = { level = "deny", priority = -1 }
missing_panics_doc = { level = "deny", priority = -1 }


[dependencies]
chrono = { version = "0.4.38", features = ["serde"] }
serde = { version = "1.0.208", features = ["derive"] }
base64 = "0.22.1"
ring = "0.17.8"
hmac = "0.13.0-pre.4"
thiserror = "2.0.12"
bon = "3.6.3"
serde_json = "1.0.125"
graphql_client = "0.14.0"
tokio = { version = "1.39.3", optional = true, default-features = false, features = ["fs"] }
tokio-util = { version = "0.7.11", optional = true, default-features = false, features = ["codec"]}
reqwest = { version = "0.12.7", features = ["json", "http2", "default-tls"], default-features = false, optional = true}
config = { version = "0.15.11", features = ["ini"], optional = true, default-features = false }
dirs = { version = "6.0.0", optional = true }


[dev-dependencies]
tempfile = "3.12.0"
tokio = { version = "1.39.3", features = ["full", "test-util"] }