百科.dev
全部条目AI 编程趋势榜开源项目技术资讯提交条目
登录
< 返回工具列表
C

cryptofeed

> 数据库
开源

加密货币交易所 Websocket 数据馈送处理器

2.9K stars0 点赞0 次浏览
访问官网GitHub

工具介绍

加密货币交易所 Websocket 数据馈送处理器

Cryptocurrency Exchange Feed Handler

Handles multiple cryptocurrency exchange data feeds and returns normalized and standardized results to client registered callbacks for events like trades, book updates, ticker updates, etc. Utilizes websockets when possible, but can also poll data via REST endpoints if a websocket is not provided.

Supported exchanges

  • Bitfinex
  • bitFlyer
  • Bithumb
  • Bitstamp
  • Bybit
  • Binance
  • Binance Delivery
  • Binance Futures
  • Binance US
  • Bitget
  • Coinbase
  • Crypto.com
  • Deribit
  • Gate.io
  • Gate.io Futures
  • dYdX v4
  • Gemini
  • Hyperliquid
  • HTX (formerly Huobi)
  • HTX Swap (Coin-M and USDT-M)
  • Independent Reserve
  • Kraken
  • MEXC (spot)
  • Kraken Futures
  • KuCoin
  • OKX
  • Phemex
  • Poloniex
  • Upbit

Basic Usage

Create a FeedHandler object and add subscriptions. For the various data channels that an exchange supports, you can supply callbacks for data events, or use provided backends (described below) to handle the data for you. Start the feed handler and you're done!

…

National Best Bid/Offer (NBBO)

Cryptofeed also provides a synthetic NBBO (National Best Bid/Offer) feed that aggregates the best bids and asks from the user specified feeds.

from cryptofeed import FeedHandler
from cryptofeed.exchanges import Coinbase, Gemini, Kraken

async def nbbo_update(symbol, bid, bid_size, ask, ask_size, bid_feed, ask_feed):
    print(f'Pair: {symbol} Bid Price: {bid:.2f} Bid Size: {bid_size:.6f} Bid Feed: {bid_feed} Ask Price: {ask:.2f} Ask Size: {ask_size:.6f} Ask Feed: {ask_feed}')

def main():
    f = FeedHandler()
    f.add_nbbo([Coinbase, Kraken, Gemini], ['BTC-USD'], nbbo_update)
    f.run()

Supported Channels

Cryptofeed supports the following public data channels from exchanges

  • L1_BOOK - Top of book
  • L2_BOOK - Price aggregated sizes. Some exchanges provide the entire depth, some provide a subset.
  • L3_BOOK - Price aggregated orders. Like the L2 book, some exchanges may only provide partial depth.
  • TRADES - Note this reports the taker's side, even for exchanges that report the maker side.
  • TICKER
  • FUNDING
  • OPEN_INTEREST - Open interest data.
  • LIQUIDATIONS
  • INDEX
  • CANDLES - Candlestick / K-Line data.

Backends

Cryptofeed supports backend callbacks that will write directly to storage or other interfaces.

Supported Backends:

  • Redis (Sorted Sets, Streams and Keys)
  • ZeroMQ
  • UDP Sockets
  • TCP Sockets
  • Unix Domain Sockets
  • InfluxDB v2
  • MongoDB
  • Kafka
  • PostgreSQL
  • QuestDB

Data Capture and Replay

Cryptofeed can record data from data feeds to standard pcap files for later replay

from cryptofeed import FeedHandler

# `record` is a pcap file path or a directory
fh = FeedHandler(record='sample_data/')
fh.add_feed('COINBASE', symbols=['BTC-USD'], channels=[TRADES, L2_BOOK], callbacks=...)
fh.run()

examples/record.py wraps this into a small recording tool. The pcaps are zstandaard compressed by default. Wireshark and tshark open these files natively and playback decompresses transparently. Metadata is stored in .meta.json.

Installation

Note: cryptofeed requires Python 3.12+

Cryptofeed can be installed from PyPi. (It's recommended that you install in a virtual environment of your choosing).

pip install cryptofeed

Cryptofeed has optional dependencies, depending on the backends used. You can install them individually, or all at once. To install Cryptofeed along with all its optional dependencies in one bundle:

pip install cryptofeed[all]

If you wish to clone the repository and work on it (development uses uv), run this from the root of the cloned repository:

uv sync

Alternatively, you can install from source in editable mode with pip:

pip install -e .

Performance

Measured on Python 3.14.6 based on throughput over real recorded exchange traffic.

Operation Result
Trade construct / to_dict / from_dict 102 ns / 214 ns / 277 ns
Ticker / Candle / Funding construct 70 ns / 118 ns / 141 ns
Book single level update / delete / top-of-book read 89 ns / 124 ns / 140 ns
Book to_dict, 10 / 100 levels per side 2.4 µs / 22.2 µs
Checksum, Kraken / OKX format (200 levels) 2.0 µs / 6.1 µs
JSON decode with Decimal (msgspec / stdlib fallback) 1.39M / 0.60M msg/s
JSON encode to str / bytes 4.65M / 5.25M msg/s
Message handler, Kraken / Bybit / KuCoin / Kraken Futures 161k / 134k / 122k / ~100k frames/s

Future Work

There are a lot of planned features, new exchanges, etc planned! If you'd like to discuss ongoing development, please join the discord or open a thread in the discussions in GitHub.

Contributing

Issues and PRs are welcomed!

Cryptofeed wouldn't be possible without the help of many contributors! I owe them and all other contributors my thanks!

Donations / Support

Support and donations are appreciated but not required. You can donate via GitHub Sponsors, or via the addresses below:

  • Bitcoin: bc1qm0kxz8hqacaglku5fjhfe9a5hjnuyfwk02lsyr
  • Ethereum: 0x690709FEe13eEce9E7852089BB2D53Ae5D073154

Issues· 0 开放

查看全部 Issues在 GitHub 打开

暂无开放 Issues,或尚未同步最近议题。

> 标签

Pythonasynciobinancebitcoinbtc

暂无评论,来聊聊你的看法吧

> 工具信息

发布日期2026年8月1日
最后更新2026年9月17日
分类数据库
定价开源

> 相关工具

P
PostgreSQL
功能强大的开源关系型数据库
R
Redis
内存数据结构存储,常用作缓存与队列
M
MySQL
广泛使用的开源关系型数据库