rhyperliquid 0.2.0

Rust SDK and client for the Hyperliquid exchange API
Documentation
[package]
name = "rhyperliquid"
version = "0.2.0"
edition = "2021"
authors = ["Elijah Hampton <elijahhamptonj@proton.me>"]
description = "Rust SDK and client for the Hyperliquid exchange API"
repository = "https://github.com/elijahhampton/rhyperliquid"
homepage = "https://github.com/elijahhampton/rhyperliquid"
readme = "README.md"
keywords = ["hyperliquid", "exchange", "sdk", "rust", "perp-dex"]
categories = ["cryptography", "api-bindings"]
license = "MIT"
rust-version = "1.75"

[features]
default = []
cli = []

[[bin]]
name = "cli"
path = "src/bin/cli.rs"
required-features = ["cli"]

[badges]
maintenance = { status = "actively-developed" }

[workspace]
members = ["."]
resolver = "2"

[dependencies]
alloy = { version = "1", features = ["full"] }
alloy-primitives = { version = "0.8.0", features = ["serde"] }
anyhow = "1.0"
async-trait = "0.1"
clap = { version = "4.5.53", features = ["derive"] }
futures = "0.3.31"
futures-util = { version = "0.3.31", features = ["sink"] }
once_cell = "1.19"
reqwest = { version = "=0.12.23", features = ["json", "rustls-tls"] }
rmp-serde = "1.3.0"
serde_with = "3"
rust_decimal = { version = "1.35", features = ["serde", "serde-float", "serde-str", "serde-with-str"] }
serde = { version = "1.0", features = ["derive"] }
serde_json = { version = "1.0", features = ["preserve_order"] }
thiserror = "1.0"
tokio = { version = "1.38", features = ["full"] }
tokio-tungstenite = { version = "0.28.0", features = ["native-tls"] }
tracing = "0.1"
tracing-subscriber = "0.3.22"
url = "2.5"

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

[lints.rust]
dead_code = "allow"
unused_imports = "deny"
missing_docs = "allow"

[lints.clippy]
unwrap_used = "deny"

panic = "deny"
unreachable = "deny"
arithmetic_side_effects = "deny"
lossy_float_literal = "deny"
indexing_slicing = "deny"
float_cmp = "deny"
float_cmp_const = "deny"


shadow_unrelated = "deny"
use_self = "deny"
dbg_macro = "deny"
todo = "deny"
unimplemented = "deny"

cast_possible_truncation = "deny"
cast_precision_loss = "deny"
as_conversions = "warn"

expect_used = "allow"
map_unwrap_or = "allow"
min_ident_chars = "allow"
question_mark_used = "allow"
shadow_reuse = "allow"
missing_const_for_fn = "allow"
absolute_paths = "allow"
blanket_clippy_restriction_lints = "allow"
doc_overindented_list_items = "allow"
doc_lazy_continuation = "allow"
needless_borrow = "allow"
pub_with_shorthand = "allow"
redundant_pub_crate = "allow"
std_instead_of_alloc = "allow"
std_instead_of_core = "allow"
pub_use = "allow"
str_to_string = "allow"
must_use_candidate = "allow"
uninlined_format_args = "allow"
similar_names = "allow"
redundant_closure_for_method_calls = "allow"
inconsistent_struct_constructor = "allow"
match_same_arms = "allow"

pedantic = { level = "warn", priority = -1 }
restriction = { level = "allow", priority = -1 }
perf = { level = "warn", priority = -1 }
style = { level = "warn", priority = -1 }
nursery = { level = "warn", priority = -1 }
complexity = { level = "warn", priority = -1 }

missing_inline_in_public_items = "allow"
exhaustive_structs = "allow"
exhaustive_enums = "allow"
module_name_repetitions = "allow"
arbitrary_source_item_ordering = "allow"
missing_docs_in_private_items = "allow"
module_inception = "allow"
multiple_crate_versions = "allow"
print_stdout = "allow"
print_stderr = "allow"
implicit_return = "allow"
single_match_else = "allow"
missing_panics_doc = "allow"
missing_errors_doc = "allow"
mod_module_files = "allow"
struct_field_names = "allow"

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

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

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

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

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

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

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

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

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

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

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

[profile.release]
codegen-units = 1
lto = true
panic = "abort"