$ show nntaoli-project/goex
goex is a Go library that provides unified interfaces for cryptocurrency exchanges (OKX, Binance, Bitget). It abstracts exchange-specific API differences behind common interfaces for both public market data and private trading operations. The architecture features modular exchange-specific packages, shared utilities for HTTP clients, logging, and model definitions, and uses dependency injection for configuration. Key strengths include clean separation of concerns, proper implementation of cryptographic signing, and use of the functional options pattern for configuration.
The LLM identified 4 files worth highlighting for reuse:
Provides isolated cryptographic signing utilities (HMAC, MD5, SHA variants) for exchange API authentication. Self-contained with only stdlib dependencies, demonstrating proper implementation of security-sensitive operations. Could be extracted to any project requiring API request signing with minimal modification.
Defines a clean interface abstraction for HTTP clients that allows swapping between different implementations (standard library and fasthttp). Demonstrates dependency injection and interface segregation principles. Completely self-contained and could be used as a standalone HTTP abstraction layer in any Go project.
Contains well-designed domain models for cryptocurrency trading concepts (Order, Account, Ticker, Depth, etc.). Self-contained with only stdlib and time dependencies, representing the core data structures exchanged with trading platforms. These models could be reused in other trading systems or analytics tools with zero modification.
Implements the functional options pattern for configuring API clients with optional parameters. Shows advanced Go proficiency in creating extensible, readable configuration APIs. Completely self-contained and represents a reusable pattern for any Go library requiring configurable options.