All Projects → discosultan → Krakencore

discosultan / Krakencore

Licence: mit
💱 .NET client for Kraken Bitcoin & cryptocurrency exchange API

Programming Languages

csharp
926 projects

Projects that are alternatives of or similar to Krakencore

Vs Threading
The Microsoft.VisualStudio.Threading is a xplat library that provides many threading and synchronization primitives used in Visual Studio and other applications.
Stars: ✭ 585 (+1481.08%)
Mutual labels:  async, netstandard
Asyncfriendlystacktrace
Async-friendly format for stack traces and exceptions
Stars: ✭ 205 (+454.05%)
Mutual labels:  async, netstandard
Fastapi
FastAPI framework, high performance, easy to learn, fast to code, ready for production
Stars: ✭ 39,588 (+106894.59%)
Mutual labels:  async
Handle Path Oz
Android Library to handle multiple Uri's(paths) received through Intents.
Stars: ✭ 36 (-2.7%)
Mutual labels:  async
Csp
Communicating Sequential Processes in JavaScript
Stars: ✭ 33 (-10.81%)
Mutual labels:  async
Workcraft
Toolset to capture, simulate, synthesize and verify graph models
Stars: ✭ 27 (-27.03%)
Mutual labels:  async
Nodespider
[DEPRECATED] Simple, flexible, delightful web crawler/spider package
Stars: ✭ 33 (-10.81%)
Mutual labels:  async
Iguazu Rest
✨ Iguazu REST is a plugin for the Iguazu ecosystem that allows for pre-built async calls for REST with smart caching.
Stars: ✭ 21 (-43.24%)
Mutual labels:  async
Computesharp
A .NET 5 library to run C# code in parallel on the GPU through DX12 and dynamically generated HLSL compute shaders, with the goal of making GPU computing easy to use for all .NET developers! 🚀
Stars: ✭ 982 (+2554.05%)
Mutual labels:  netstandard
Fast Socks5
Fast SOCKS5 client/server implementation written in Rust async/.await (with async-std)
Stars: ✭ 33 (-10.81%)
Mutual labels:  async
Yii2 Queue
Yii2 Queue Extension. Supports DB, Redis, RabbitMQ, Beanstalk and Gearman
Stars: ✭ 977 (+2540.54%)
Mutual labels:  async
Restless
Express.js api, type safe validations and more
Stars: ✭ 32 (-13.51%)
Mutual labels:  async
Turbulette
😴 Turbulette - A batteries-included framework to build high performance, fully async GraphQL APIs
Stars: ✭ 29 (-21.62%)
Mutual labels:  async
Create Request
Apply interceptors to `fetch` and create a custom request function.
Stars: ✭ 34 (-8.11%)
Mutual labels:  async
React Hydrate
Generic data fetching, caching, and SSR hydration pattern for React
Stars: ✭ 27 (-27.03%)
Mutual labels:  async
Garnet
Garnet — bot-friendly telethon
Stars: ✭ 36 (-2.7%)
Mutual labels:  async
Ktx
LibKTX: Kotlin extensions for LibGDX games and applications
Stars: ✭ 913 (+2367.57%)
Mutual labels:  async
Modern Async
A modern JavaScript tooling library for asynchronous operations using async/await and promises
Stars: ✭ 31 (-16.22%)
Mutual labels:  async
Storage Based Queue
Javascript queue library with persistent storage based queue mechanism for the browsers environments. Specially designed for offline.
Stars: ✭ 33 (-10.81%)
Mutual labels:  async
Futures Batch
An adapter for futures, which chunks up elements and flushes them after a timeout, or when the buffer is full. (Formerly known as tokio-batch.)
Stars: ✭ 37 (+0%)
Mutual labels:  async

KrakenCore

.NET client for Kraken bitcoin exchange API

NuGet Package AppVeyor Build Status Travis Build Status

⚠ This is an alpha version, meaning the API has not been tested on any production application. USE AT OWN RISK! Also, the API does not include the tentative private user funding API as it is subject to change.

🎉 Features

  •  ✖ Cross-platform based on .NET Standard 2.0
  • 🔁 Asynchronous API using async and await
  • 💪 Strongly typed models
  • 🛂 Covered with tests
  • 🔐 Supports two-factor authentication

📦 Getting Started

using KrakenCore;
var client = new KrakenClient(apiKey, privateKey);

var response = await client.GetAccountBalance();
foreach (var currency in response.Result)
    Console.WriteLine($"{currency.Key} : {currency.Value}");

// ZEUR : 1000
// XXBT : 1
// XETH : 3

🔧 Extending Client

The client supports two extensibility points: one right before a request to Kraken is dispatched and one right after a response is received. These points provide additional context specific information (for example, the cost of a particular call) and can be used to implement features such as rate limiting or logging.

Sample extensions implemented in the test suite:

var client = new KrakenClient(ApiKey, PrivateKey)
{
    InterceptRequest = async req =>
    {
        // Log request.
        output.WriteLine(req.HttpRequest.ToString());
        string content = await req.HttpRequest.Content.ReadAsStringAsync();
        if (!string.IsNullOrWhiteSpace(content)) output.WriteLine(content);

        // Wait if we have hit the API rate limit.
        RateLimiter limiter = req.HttpRequest.RequestUri.OriginalString.Contains("/private/")
            ? privateApiRateLimiter
            : publicApiRateLimiter;
        await limiter.WaitAccess(req.ApiCallCost);
    }
};

🙏 Related Work

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].