Skip to main content

Crate roshi

Crate roshi 

Source
Expand description

§Roshi — Kalshi SDK for Rust

Roshi is a fully asynchronous, type-safe, and ergonomic SDK for interacting with the Kalshi prediction market exchange.

This crate wraps both Kalshi’s REST and WebSocket APIs.


§Features

  • ✅ Full support for Kalshi’s REST API
  • 📡 Real-time market data over Kalshi’s WebSocket feeds
  • 🔐 API key authentication and request signing
  • 🧠 Typed models for events, markets, orders, and more
  • 📦 Built on reqwest, tokio, serde, and tokio-tungstenite

§Quick Start

§REST Client Example

use roshi::HttpClient;
use roshi::mode::Mode;

#[tokio::main]
async fn main() -> anyhow::Result<()> {
    let client = HttpClient::new(Mode::Demo, Some("your-api-key".to_string()), None);
    let markets = client.get_markets().await?;

    for market in markets.markets.unwrap_or_default() {
        println!("{} - {}", market.ticker.unwrap_or_default(), market.title.unwrap_or_default());
    }
    Ok(())
}

§WebSocket Client Example

use roshi::WebSocketClient;

#[tokio::main]
async fn main() -> anyhow::Result<()> {
    let mut ws = WebSocketClient::connect().await?;
    ws.subscribe_market("INFLATION2024").await?;

    while let Some(event) = ws.next_event().await {
        match event {
            roshi::WebSocketEvent::MarketUpdate(update) => println!("{:#?}", update),
            roshi::WebSocketEvent::Error(e) => eprintln!("WebSocket error: {:?}", e),
            _ => {}
        }
    }
    Ok(())
}

§Modules

  • client — REST and WebSocket API support
  • constants — API Endpoints
  • types — Typed data structures for markets, events, orders, etc.
  • utils — Utility functions for signing, formatting, etc.

§Crate Features

Enable optional features in your Cargo.toml:

[dependencies.roshi]
version = "0.1"
features = ["rest_client", "ws_client", "debug"]

§License

Licensed under the MIT License.

Re-exports§

pub use constants::endpoints;
pub use utils::format_endpoint;
pub use types::*;

Modules§

client
constants
macros
mode
types
utils

Macros§

define_get_and_delete_methods
define_post_methods