{"id":18730464,"url":"https://github.com/runeksvendsen/crypto-venues","last_synced_at":"2025-04-12T17:25:01.437Z","repository":{"id":48606081,"uuid":"120300802","full_name":"runeksvendsen/crypto-venues","owner":"runeksvendsen","description":"Fetch order books from various cryptocurrency exchanges","archived":false,"fork":false,"pushed_at":"2024-01-08T09:14:18.000Z","size":226,"stargazers_count":5,"open_issues_count":1,"forks_count":1,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-04-10T20:07:13.120Z","etag":null,"topics":["cryptocurrency","cryptocurrency-markets","exchange-api","orderbook"],"latest_commit_sha":null,"homepage":"","language":"Haskell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/runeksvendsen.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-02-05T12:19:03.000Z","updated_at":"2023-08-12T22:49:00.000Z","dependencies_parsed_at":"2024-11-07T14:41:58.713Z","dependency_job_id":"85d1c5c8-0aed-43b2-a269-4d25d38bb7cc","html_url":"https://github.com/runeksvendsen/crypto-venues","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/runeksvendsen%2Fcrypto-venues","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/runeksvendsen%2Fcrypto-venues/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/runeksvendsen%2Fcrypto-venues/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/runeksvendsen%2Fcrypto-venues/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/runeksvendsen","download_url":"https://codeload.github.com/runeksvendsen/crypto-venues/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248603216,"owners_count":21131762,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cryptocurrency","cryptocurrency-markets","exchange-api","orderbook"],"created_at":"2024-11-07T14:41:54.892Z","updated_at":"2025-04-12T17:25:01.414Z","avatar_url":"https://github.com/runeksvendsen.png","language":"Haskell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Cryptocurrency venues\n\n[\u003cimg src=\"https://github.com/runeksvendsen/crypto-venues/actions/workflows/build.yml/badge.svg\"\u003e](https://github.com/runeksvendsen/crypto-venues/actions/workflows/build.yml)\n\n\n### Fetch order book data from various cryptocurrency exchanges.\n\n[Currently supported venues](https://github.com/runeksvendsen/crypto-venues/tree/ebf1fcbcee80bf71721cd581c2751476dffbbc45/src/CryptoVenues/Venues.hs#L30-L34).\n\nThis library enables:\n\n1. Fetching the list of available cryptocurrency markets for a given exchange/venue\n2. Fetching the order book for the given cryptocurrency market\n3. Throttling/rate-limiting requests, by using the specific exchange's rate-limit (and backing off if a \"Too Many Requests\"-HTTP error is received) \n\nThe fetched order books are compatible with the [`orderbook`](https://github.com/runeksvendsen/orderbook) library, which we can then use to query the liquidity of the given market.\n\n## CLI\n\nThe functionality of this library is exposed as the CLI application [rest-depth](https://github.com/runeksvendsen/rest-depth).\n\n## Development\n\nTo add support for a new exchange, implement the [`EnumMarkets`](https://github.com/runeksvendsen/crypto-venues/blob/dc093651d15a19d6d8185454bcf08c1284ab8bfa/src/Fetch/EnumMarkets.hs#L16) class (which retrieves a list of supported markets) for the given exchange, as well as the [`MarketBook`](https://github.com/runeksvendsen/crypto-venues/blob/dc093651d15a19d6d8185454bcf08c1284ab8bfa/src/Fetch/MarketBook.hs#L29) class which:\n\n1. Retrieves an orderbook when given a `Market` returned by the `EnumMarkets` implementation\n2. Returns the rate limit for fetching orderbooks from the given exchange\n\n### Testing\n\nNote that Binance restricts the IP addresses that can access its services, so that US IP addresses are denied access. Because the VMs for the GitHub CI are located in the US, the tests for Binance are disabled for the GitHub CI.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fruneksvendsen%2Fcrypto-venues","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fruneksvendsen%2Fcrypto-venues","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fruneksvendsen%2Fcrypto-venues/lists"}