| Crates.io | consulx |
| lib.rs | consulx |
| version | 0.1.1 |
| created_at | 2025-12-12 11:28:41.994322+00 |
| updated_at | 2025-12-13 04:48:28.85335+00 |
| description | A pure-HTTP Consul KV CLI + REPL built from scratch |
| homepage | https://github.com/srotas-space/consulx |
| repository | https://github.com/srotas-space/consulx |
| max_upload_size | |
| id | 1981390 |
| size | 81,873 |

consulx is a modern Rust toolkit for working with Consul KV, providing:
kv_list_json)Everything is implemented from scratch using reqwest.
Drop ConsulXClient into your application state.
No consulrs. No SDK. No hidden magic.
[dependencies]
consulx = "0.1.0"
tokio = { version = "1", features = ["full"] }
reqwest = { version = "0.12", features = ["rustls-tls", "json"] }
serde = { version = "1", features = ["derive"] }
serde_json = "1"
cargo install consulx
consulx
Specify endpoint:
CONSUL_HTTP_ADDR=http://127.0.0.1:8500 consulx
| Command | Usage | Description |
|---|---|---|
get |
get <key> |
Fetch raw value stored at a key |
put |
put <key> <value> |
Store a raw string value |
del |
del <key> |
Delete a key |
list |
list <prefix> |
List all keys under a prefix |
tree |
tree <prefix> |
Show keys as an ASCII tree |
get-json |
get-json <key> |
Fetch and pretty-print JSON value |
put-json |
put-json <key> <json> |
Validate & store JSON value |
edit |
edit <key> |
Edit value in $EDITOR |
watch |
watch <key> |
Watch a single key for changes |
watch-prefix |
watch-prefix <prefix> |
Watch all keys under a prefix |
help |
help |
Show available commands |
exit |
exit / quit |
Exit the REPL |
#[derive(Deserialize)]
struct FeatureFlag {
enabled: bool,
}
let flags = consul.kv_list_json::<FeatureFlag>("app/features/").await?;
for (key, flag) in flags {
println!("{key} => {:?}", flag);
}
// Client creation
ConsulXClient::new(url) // Create client with explicit Consul URL
ConsulXClient::from_env() // Uses CONSUL_HTTP_ADDR (default: http://127.0.0.1:8500)
// Raw KV operations
kv_get_raw(key) // -> Option<String>
kv_put(key, value) // Store raw value
kv_delete(key) // Delete a key
kv_list(prefix) // List keys under a prefix
// JSON helpers (typed)
kv_get_json<T>(key) // -> Option<T>
kv_put_json<T>(key, &T) // Serialize & store JSON
kv_list_json<T>(prefix) // Load JSON objects under prefix
// Watches (blocking queries)
kv_watch(key) // Watch a single key
kv_watch_prefix(prefix) // Watch all keys under prefix
Made with โค๏ธ by the [Srotas Space] (https://srotas.space/open-source)
Snm Maurya - Creator & Lead Developer
LinkedIn
This project is licensed under the MIT License - see the LICENSE file for details.