Skip to main content

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

This version

0.5.0

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

unicex-0.5.0.tar.gz (112.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

unicex-0.5.0-py3-none-any.whl (160.1 kB view details)

Uploaded Python 3

File details

Details for the file unicex-0.5.0.tar.gz.

File metadata

  • Download URL: unicex-0.5.0.tar.gz
  • Upload date:
  • Size: 112.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.11

File hashes

Hashes for unicex-0.5.0.tar.gz
Algorithm Hash digest
SHA256 9ad163586e94a1a6545b549db0aaccd460cb060510bbaf6a8f307cdcb801ffef
MD5 2772efd3599a571920e9cb4e2c25202d
BLAKE2b-256 1550bc4c04bdc6aa06d06af7fd964858823446dbf8c8b9cb6db2e26c58e4256f

See more details on using hashes here.

File details

Details for the file unicex-0.5.0-py3-none-any.whl.

File metadata

  • Download URL: unicex-0.5.0-py3-none-any.whl
  • Upload date:
  • Size: 160.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.11

File hashes

Hashes for unicex-0.5.0-py3-none-any.whl
Algorithm Hash digest
SHA256 0d80c3a1b6b712d96a703b83347b95a3dc4b20049b85911e4ffff99e9a54d5e2
MD5 f39a5e2469084d919aa944d34e523359
BLAKE2b-256 bcd0e350765310bcc50e19c207944548da691aaf8740e214a1cf13f29504279c

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page