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.4.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.4.0.tar.gz (112.4 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.4.0-py3-none-any.whl (159.6 kB view details)

Uploaded Python 3

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

Hashes for unicex-0.4.0.tar.gz
Algorithm Hash digest
SHA256 16b6f90ccb86e7525337db5fb714ff5ab501de7cd7c53f9d6a6f065178ff7026
MD5 53e4abd45dee9973600fdb3ac85b63ac
BLAKE2b-256 6055afb44f1406cddc5db6d9bf339211e8c2487d422020d0f0f0b38632441474

See more details on using hashes here.

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

Hashes for unicex-0.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 b0af9a3063d4ba03388781c337a14fbd5ae90f4f64b35bd2cb7c8c1b4f2c4f0c
MD5 1c16883a23760d80a3fe33cbf93bb867
BLAKE2b-256 692d400d0daa0a2cd38ead15a88c7fb2ef682de105e5d1c98d7355feb60f1d36

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