From 0b6dbde7d4f8e0cabfdeee775901b46466e6fefe Mon Sep 17 00:00:00 2001 From: JKorf Date: Sat, 1 Jun 2024 22:56:43 +0200 Subject: [PATCH] docs --- docs/assets/images/struct.png | Bin 0 -> 22851 bytes docs/index.html | 23 ++++++++++++----------- 2 files changed, 12 insertions(+), 11 deletions(-) create mode 100644 docs/assets/images/struct.png diff --git a/docs/assets/images/struct.png b/docs/assets/images/struct.png new file mode 100644 index 0000000000000000000000000000000000000000..7a4b7132069fc22727647af00c55f22b97eff438 GIT binary patch literal 22851 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 On9ebM%~Eyi3;z$RUe;~^ literal 0 HcmV?d00001 diff --git a/docs/index.html b/docs/index.html index e3a12b2..ac2e0da 100644 --- a/docs/index.html +++ b/docs/index.html @@ -122,15 +122,16 @@
-

CryptoExchange.Net

+

CryptoExchange.Net & Implementations

CryptoExchange.Net is a base library which is used to implement different cryptocurrency (exchange) API's. It provides a standardized way of implementing different API's, which results in a very similar experience for users of the API implementations.

-
All libraries can be used in the same project as well as individually, just install the exchange libraries you need!
-

The following API's are directly supported. Note that there are 3rd party implementations going around, but only these are created and supported by me

+

When access to multiple or all exchange API's is needed, the CryptoClients.Net library combines all different client libraries in a single Nuget package. The following image illustrates the structure:

+

+

These Exchanges/API's are directly supported:

- + @@ -147,12 +148,12 @@
ExchangeAPI Repository Nuget
MexcJKorf/Mexc.Net
OKXJKorf/OKX.Net
- -

Alternatively, use CryptoClients.Net which combines these packages and allows easy access to all exchange API's.

+

Note that there are 3rd party implementations going around, but only the listed ones here are created and supported by me.

+

When using multiple of these API's the CryptoClients.Net package can be used which combines these packages and allows easy access to all exchange API's.

Supported Frameworks

- The library is targeting both .NET Standard 2.0 and .NET Standard 2.1 for optimal compatibility + The libraries are targeting both .NET Standard 2.0 and .NET Standard 2.1 for optimal compatibility

@@ -1376,14 +1377,14 @@ await client.UnsubscribeAllAsync(); ============================ -->

Common Clients

-

CryptoClients.Net exposes some common clients. These clients aim to make using the different API's easier.

+

The CryptoClients.Net client exposes some common client classes. These clients aim to make using the different API's easier.

(I)ExchangeRestClient
- The ExchangeRestClient (or ExchangeRestClient when used directly) can be used to easily access REST clients for different API's. + The IExchangeRestClient (or ExchangeRestClient when used directly) can be used to easily access REST clients for different API's.

For example, using the Binance, Bybit and Kucoin API's can be done like this: -

var exchangeRestClient = new ExchangeRestClient(); // Either construct it or inject the IExchangeRestClient into your service
+			
var exchangeRestClient = new ExchangeRestClient(); // Either construct it or inject the IExchangeRestClient into your service after having called 'AddCryptoClients()' during service regirations
 var binanceTicker = await exchangeRestClient.Binance.SpotApi.ExchangeData.GetTickersAsync();
 var bybitTicker = await exchangeRestClient.Bybit.V5Api.ExchangeData.GetTickers();
 var kucoinTicker = await exchangeRestClient.Kucoin.SpotApi.ExchangeData.GetTickers();
@@ -1393,7 +1394,7 @@ var kucoinTicker = await exchangeRestClient.Kucoin.SpotApi.ExchangeData.GetTicke Similarly as the (I)ExchangeRestClient this client allows you to access the different Websocket clients through a single access point.

For example accessing the Bitget, Kraken and OKX API's could be done like this: -

var exchangeSocketClient = new ExchangeSocketClient(); // Either construct it or inject the IExchangeSocketClient into your service
+		  
var exchangeSocketClient = new ExchangeSocketClient(); // Either construct it or inject the IExchangeSocketClient into your service after having called 'AddCryptoClients()' during service regirations
 var bitgetSub = await exchangeSocketClient.Bitget.SpotApi.SubscribeToTickerUpdatesAsync("ETHUSDT", data => {});
 var krakenSub = await exchangeSocketClient.Kraken.SpotApi.SubscribeToTickerUpdatesAsync("ETH/USD", data => {});
 var okxSub = await exchangeSocketClient.OKX.UnifiedApi.ExchangeData.SubscribeToTickerUpdatesAsync("ETH-USDT", data => {});