sprites 0.1.0

Official Rust SDK for Sprites - stateful sandbox environments from Fly.io
Documentation
[package]
name = "sprites"
version = "0.1.0"
edition = "2021"
rust-version = "1.75"
description = "Official Rust SDK for Sprites - stateful sandbox environments from Fly.io"
license = "Apache-2.0"
authors = ["Fly.io <hello@fly.io>"]
repository = "https://github.com/m-mohamed/sprites-rs"
homepage = "https://sprites.dev"
documentation = "https://docs.rs/sprites"
keywords = ["sprites", "sandbox", "fly", "firecracker", "vm"]
categories = ["api-bindings", "development-tools", "virtualization"]
readme = "README.md"
include = ["src/**/*", "LICENSE", "README.md", "CHANGELOG.md"]

[package.metadata.docs.rs]
all-features = true
rustdoc-args = ["--cfg", "docsrs"]

[lints.rust]
unsafe_code = "forbid"

[lints.clippy]
all = { level = "warn", priority = -1 }
pedantic = { level = "warn", priority = -1 }
# Allow reasonable patterns
missing_errors_doc = "allow"
missing_panics_doc = "allow"
must_use_candidate = "allow"
module_name_repetitions = "allow"
doc_markdown = "allow"
struct_excessive_bools = "allow"
similar_names = "allow"
redundant_closure_for_method_calls = "allow"
return_self_not_must_use = "allow"
unnecessary_wraps = "allow"
format_push_string = "allow"
cast_possible_truncation = "allow"
cast_sign_loss = "allow"
too_many_lines = "allow"
match_same_arms = "allow"
missing_fields_in_debug = "allow"
match_wildcard_for_single_variants = "allow"

[dependencies]
# HTTP client
reqwest = { version = "0.12", features = ["json", "rustls-tls"], default-features = false }

# Async runtime
tokio = { version = "1.36", features = ["rt-multi-thread", "macros", "sync", "time"] }

# WebSocket for exec streaming
tokio-tungstenite = { version = "0.24", features = ["rustls-tls-native-roots"] }
futures-util = "0.3"

# Serialization
serde = { version = "1", features = ["derive"] }
serde_json = "1"

# Error handling
thiserror = "2"

# Date/time
chrono = { version = "0.4", features = ["serde"] }

# URL handling
url = "2"
urlencoding = "2"

# Streaming I/O and async channels
tokio-util = { version = "0.7", features = ["codec"] }
pin-project-lite = "0.2"

[dev-dependencies]
tokio-test = "0.4"

[[example]]
name = "basic"
path = "examples/basic.rs"

[[example]]
name = "exec_debug"
path = "examples/exec_debug.rs"