drm-core

Crates.iodrm-core
lib.rsdrm-core
version0.1.3
created_at2025-12-25 17:06:39.626328+00
updated_at2025-12-28 08:41:41.184397+00
descriptionCore traits, models, and errors for dr-manhattan prediction market SDK
homepage
repositoryhttps://github.com/gtg7784/dr-manhattan-rust
max_upload_size
id2004751
size69,412
Taegeon Alan Go (gtg7784)

documentation

README

drm-core

Crates.io Documentation License: MIT

Core traits, models, and errors for the dr-manhattan prediction market SDK.

Overview

drm-core provides the foundational components for building prediction market integrations:

  • Exchange trait: Unified async interface for all prediction market operations
  • Models: Market, Order, Position, Orderbook, and more
  • WebSocket trait: Real-time orderbook and trade streaming
  • Strategy trait: Framework for building trading strategies
  • Error types: Comprehensive error hierarchy (DrmError)

Installation

[dependencies]
drm-core = "0.1"

Usage

This crate is typically used as a dependency by exchange implementations (drm-exchange-polymarket, drm-exchange-limitless, drm-exchange-opinion).

use drm_core::{Exchange, Market, Order, OrderSide, DrmError};

// The Exchange trait defines the unified API
#[async_trait]
pub trait Exchange: Send + Sync {
    fn id(&self) -> &'static str;
    fn name(&self) -> &'static str;
    
    async fn fetch_markets(&self, params: Option<FetchMarketsParams>) -> Result<Vec<Market>, DrmError>;
    async fn fetch_market(&self, market_id: &str) -> Result<Market, DrmError>;
    async fn create_order(&self, ...) -> Result<Order, DrmError>;
    // ... more methods
}

Models

Model Description
Market Prediction market with question, outcomes, prices, volume
Order Order with price, size, status, timestamps
Position Position with size, average price, current price
Orderbook Orderbook with bids and asks
Trade Executed trade information

Features

  • Async-first: Built on tokio for high-performance async operations
  • Type-safe: Leverage Rust's type system for compile-time safety
  • Serde support: All models are serializable/deserializable

Part of dr-manhattan-rust

This crate is part of the dr-manhattan-rust project, a Rust port of guzus/dr-manhattan.

License

MIT

Commit count: 0

cargo fmt