Skip to main content

Crypto.com websocket api client

Project description

Crypto.com websocket api client

Build Status Maintainability Test Coverage

This is a low level api client, it just connects the exchange api with your python code in the most simple way. Over this library, you can build your awesome applications or high level api. For more information, check the library documentation, the official documentation and the examples directory.

Features

This library is optimized to be small, fast and secure.

  • Fully tested: 100% code coverage
  • Simple: It just does one thing, but it does it right
  • Fast: Relies on asyncio so latency and memory usage is near zero (much better than threading or multiprocessing)
  • No forced dependencies: Just websockets and orjson. No super modern cool features that you probably don't want

Getting started

There are two kinds of apis, the user and market. The user type requires providing api credentials (access and secret key)

Before using the library, you have to install it:

pip install crypto_com_client

The most simple example, subscribing to an orderbook:

from crypto_com.crypto_com import MarketClient
import asyncio
import logging

logging.basicConfig(level=logging.INFO)

async def run():
    async with MarketClient() as client:
        await client.subscribe(["book.CRO_USDC.10"])
        while True:
            event = await client.next_event()
            print(event)


if __name__ == "__main__":
    loop = asyncio.get_event_loop()
    loop.run_until_complete(run())

If you want to use the user api first get you api key and secret.

from crypto_com import UserClient
import asyncio
import os
import logging

logging.basicConfig(level=logging.INFO)

async def run():
    async with UserClient(
            api_key=os.environ["API_KEY"],
            api_secret=os.environ["API_SECRET"]
    ) as client:
        await client.send(
            client.build_message(
                method="private/get-open-orders",
                params={
                    "instrument_name": "CRO_USDC",
                    "page_size": 10,
                    "page": 0
                }
            )
        )
        event = await client.next_event()
        print(event)


if __name__ == "__main__":
    loop = asyncio.get_event_loop()
    loop.run_until_complete(run())

With these two examples you can use the whole api. Just check the API documentation to know the different methods and parameters.

Contributing

If you have any suggestion, detect any bug or want any feature, please open an issue so we can discuss it.

Tests

To run the tests just run tox

It will run in first instance flake8, then pylint and finally pytest with code coverage check. The only rule ignored is max-line-length=120 basically because nowadays monitors are big enough for this. Websockets import has E0611 disabled because pylint does not process __all__ correctly

Project details


Download files

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

Source Distribution

crypto-com-client-1.2.tar.gz (8.4 kB view details)

Uploaded Source

Built Distribution

crypto_com_client-1.2-py3-none-any.whl (8.5 kB view details)

Uploaded Python 3

File details

Details for the file crypto-com-client-1.2.tar.gz.

File metadata

  • Download URL: crypto-com-client-1.2.tar.gz
  • Upload date:
  • Size: 8.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.1.5 CPython/3.6.12 Linux/6.2.0-39-generic

File hashes

Hashes for crypto-com-client-1.2.tar.gz
Algorithm Hash digest
SHA256 0a9a7744612ec1612fdb0c6d0cb3e7bd2256c07b40f0e33f41f6357877af2fb6
MD5 256e4a9fa87a4841a7393bdb74ab7084
BLAKE2b-256 2a421279c9bf1f20cb9af94919d8dd5c286cb634390a5b241e4092ccc227a1b9

See more details on using hashes here.

File details

Details for the file crypto_com_client-1.2-py3-none-any.whl.

File metadata

  • Download URL: crypto_com_client-1.2-py3-none-any.whl
  • Upload date:
  • Size: 8.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.1.5 CPython/3.6.12 Linux/6.2.0-39-generic

File hashes

Hashes for crypto_com_client-1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 427d032c07a3863c2790753f8270c3032a212bc6ddcf00d726eec0555caf6aae
MD5 412998a1a6521cf1969a2b90b17698cb
BLAKE2b-256 b22c5cde147655ca32581c5e4ba5c14ca3fc52ac8afbfa7feb96a1d038f58ccf

See more details on using hashes here.

Supported by

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