Unified Crypto Exchange API
Project description
Unified Crypto Exchange API
unicex — асинхронная библиотека для работы с криптовалютными биржами, реализующая унифицированный интерфейс поверх «сырых» REST и WebSocket API разных бирж.
✅ Статус реализации
✅ Статус реализации
| Exchange | Client | Client Auth | Client Generic | WS Manager | User WS |
|---|---|---|---|---|---|
| Binance | ✅ | ✅ | ✅ | ✅ | ✅ |
| Bitget | ✅ | ✅ | ✅ | ✅ | |
| Bitrue | ✅ | ✅ | |||
| Bitunix | |||||
| Btse | ✅ | ✅ | |||
| Bybit | ✅ | ✅ | ✅ | ||
| Gateio | ✅ | ✅ | ✅ | ||
| Hyperliquid | |||||
| Kcex | |||||
| Kraken | ✅ | ✅ | |||
| Kucoin | ✅ | ✅ | |||
| Mexc | ✅ | ✅ | ✅ | ||
| Okx | ✅ | ✅ | |||
| Weex | |||||
| Xt |
📖 Описание колонок
- Client – Обертки над HTTP методами следующих разделов: market, order, position, account.
- Client Auth – Поддержка авторизации и приватных эндпоинтов.
- Client Generic – Универсальная функция для вызова не обернутых методов API.
- WS Manager – Обертки над вебсокетами биржи.
- User WS – Поддержка пользовательских вебсокетов.
✅ Статус реализации (Унифицированный интерфейс)
| Exchange | UniClient | UniWebsocketManager |
|---|---|---|
| Binance | ✅ | ✅ |
| Bitget | ✅ | |
| Bitrue | ||
| Bitunix | ||
| Btse | ||
| Bybit | ✅ | |
| Gateio | ✅ | |
| Hyperliquid | ||
| Kcex | ||
| Kraken | ||
| Kucoin | ||
| Mexc | ✅ | |
| Okx | ✅ | |
| Weex | ||
| Xt |
🚀 Быстрый старт
- Установка:
pip install unicexили из исходников:pip install -e . - Библиотека полностью асинхронная. Примеры импорта:
- Сырые клиенты:
from unicex.binance import Client - Унифицированные клиенты:
from unicex.binance import UniClient - Вебсокет менеджеры:
from unicex.binance import WebsocketManager, UniWebsocketManager
- Сырые клиенты:
Пример: получить последние цены через унифицированный клиент Binance
import asyncio
from unicex.binance import UniClient
async def main():
client = await UniClient.create()
prices = await client.last_price()
print(prices["BTCUSDT"])
await client.close()
if __name__ == "__main__":
asyncio.run(main())
Пример: подписаться на трейды через унифицированный WS‑менеджер Bitget
import asyncio
from unicex.bitget import UniWebsocketManager
from unicex import TradeDict
async def on_trade(msg: TradeDict):
print(msg)
async def main():
uwm = UniWebsocketManager()
socket = uwm.trades(callback=on_trade, symbol="BTCUSDT")
await socket.start()
if __name__ == "__main__":
asyncio.run(main())
🧑💻 Блок для разработчика
📋 Todo
- Написать 1–2 примера
- На фьючерсах OKX ticker24hr и klines возвращают объем в контрактах
- Как реализовать типы в сырых клиентах? str | int | float?
- в klines и futures_klines нужно дать возможность передавать строки, чтобы они не маппились автоматически. Либо расширить список таймфреймов
- В mexc клиенте неправильные ссылки на документацию на фьючах
- Доделать BitgetClient и проверить типы
- Пересмотреть вопрос: должен ли быть адаптер интерфейсом?
- Добавить overload к методам с
None, None - Определить порядок полей, возвращаемых адаптером
- Не делать .get в адаптере
- нужно ли как-то изменять тикер в юни клиенте и ападетере?
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file unicex-0.4.0.tar.gz.
File metadata
- Download URL: unicex-0.4.0.tar.gz
- Upload date:
- Size: 112.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
16b6f90ccb86e7525337db5fb714ff5ab501de7cd7c53f9d6a6f065178ff7026
|
|
| MD5 |
53e4abd45dee9973600fdb3ac85b63ac
|
|
| BLAKE2b-256 |
6055afb44f1406cddc5db6d9bf339211e8c2487d422020d0f0f0b38632441474
|
File details
Details for the file unicex-0.4.0-py3-none-any.whl.
File metadata
- Download URL: unicex-0.4.0-py3-none-any.whl
- Upload date:
- Size: 159.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b0af9a3063d4ba03388781c337a14fbd5ae90f4f64b35bd2cb7c8c1b4f2c4f0c
|
|
| MD5 |
1c16883a23760d80a3fe33cbf93bb867
|
|
| BLAKE2b-256 |
692d400d0daa0a2cd38ead15a88c7fb2ef682de105e5d1c98d7355feb60f1d36
|