Jan Korf
d079796020
Websocket performance update ( #261 )
...
Performance update:
Authentication
Added Ed25519 signing support for NET8.0 and newer
Added static methods on ApiCredentials to create credentials of a specific type
Added static ApiCredentials.ReadFromFile method to read a key from file
Added required abstract SupportedCredentialTypes property on AuthenticationProvider base class
General Performance
Added checks before logging statements to prevent overhead of building the log string if logging is not needed
Added ExchangeHelpers.ProcessQueuedAsync method to process updates async
Replaced locking object types from object to Lock in NET9.0 and newer
Replaced some Task response types with ValueTask to prevent allocation overhead on hot paths
Updated Json ArrayConverter to reduce some allocation overhead
Updated Json BoolConverter to prevent boxing
Updated Json DateTimeConverter to prevent boxing
Updated Json EnumConverter caching to reduce lookup overhead
Updated ExtensionMethods.CreateParamString to reduce allocations
Updated ExtensionMethods.AppendPath to reduce overhead
REST
Refactored REST message processing to separate IRestMessageHandler instance
Split RestApiClient.PrepareAsync into CheckTimeSync and RateLimitAsync
Updated IRequest.Accept type from string to MediaTypeWithQualityHeaderValue to prevent creation on each request
Updated IRequest.GetHeaders response type from KeyValuePair<string, string[]>[] to HttpRequestHeaders to prevent additional mapping
Updated IResponse.ResponseHeaders type from KeyValuePair<string, string[]>[] to HttpResponseHeaders to prevent additional mapping
Updated WebCallResult RequestHeaders and ResponseHeaders types to HttpRequestHeaders and HttpResponseHeaders
Removed unnecessary empty dictionary initializations for each request
Removed CallResult creation in internal methods to prevent having to create multiple versions for different result types
Socket
Added HighPerformance websocket client implementation which significantly reduces memory overhead and improves speed but with certain limitations
Added MaxIndividualSubscriptionsPerConnection setting in SocketApiClient to limit the number of individual stream subscriptions on a connection
Added SocketIndividualSubscriptionCombineTarget option to set the target number of individual stream subscriptions per connection
Added new websocket message handling logic which is faster and reduces memory allocation
Added UseUpdatedDeserialization option to toggle between updated deserialization and old deserialization
Added Exchange property to DataEvent to prevent additional mapping overhead for Shared apis
Refactored message callback to be sync instead of async to prevent async overhead
Refactored CryptoExchangeWebSocketClient.IncomingKbps calculation to significantly reduce overhead
Moved websocket client creation from SocketApiClient to SocketConnection
Removed DataEvent.As and DataEvent.ToCallResult methods in favor of single ToType method
Removed DataEvent creation on lower levels to prevent having to create multiple versions for different result types
Removed Subscription<TSubResponse, TUnsubResponse> as its no longer used
Other
Added null check to ParameterCollection for required parameters
Added Net10.0 target framework
Updated dependency versions
Updated Shared asset aliases check to be culture invariant
Updated Error string representation
Updated some namespaces
Updated SymbolOrderBook processing of buffered updates to prevent additional allocation
Removed ExchangeEvent type which is no longer needed
Removed unused usings
2025-12-16 11:27:49 +01:00
Jan Korf
7d7bc35869
Client Configuration ( #219 )
...
Added support for IOptions injection, allowing options to be read from IConfiguration
Small refactor on client options internals
Updated HttpClient to be static field to be
2024-11-19 11:44:30 +01:00
JKorf
949780a9ad
Removed SecureString usage throughout the library, removed some object allocations, removed some unused extension methods
2024-08-01 22:43:06 +02:00
Jan Korf
2fb3442800
Feature/system.text.json ( #192 )
...
Initial support for System.Text.Json and some refactoring
2024-03-16 14:45:36 +01:00
JKorf
690f2a63e5
Squashed commit of the following:
...
commit 90f285d7f6bcd926ce9ca3d5832b1d70a5eae6ab
Author: JKorf <jankorf91@gmail.com >
Date: Sun Jun 25 19:51:12 2023 +0200
Docs
commit 72187035c703d1402b37bd2f4c3e066706f28d67
Author: JKorf <jankorf91@gmail.com >
Date: Sat Jun 24 16:02:53 2023 +0200
docs
commit 8411977292f1fb0b6e0705b1ad675b79a5311d90
Author: JKorf <jankorf91@gmail.com >
Date: Fri Jun 23 18:25:15 2023 +0200
wip
commit cb7d33aad5d2751104c8b8a6c6eadbf0d36b672c
Author: JKorf <jankorf91@gmail.com >
Date: Fri Jun 2 19:26:26 2023 +0200
wip
commit 4359a2d05ea1141cff516dab18f364a6ca854e18
Author: JKorf <jankorf91@gmail.com >
Date: Wed May 31 20:51:36 2023 +0200
wip
commit c6adb1b2f728d143f6bd667139c619581122a3c9
Author: JKorf <jankorf91@gmail.com >
Date: Mon May 1 21:13:47 2023 +0200
wip
commit 7fee733f82fa6ff574030452f0955c9e817647dd
Author: JKorf <jankorf91@gmail.com >
Date: Thu Apr 27 13:02:56 2023 +0200
wip
commit f8057313ffc9b0c31effcda71d35d105ea390971
Author: JKorf <jankorf91@gmail.com >
Date: Mon Apr 17 21:37:51 2023 +0200
wip
2023-06-25 19:58:46 +02:00
JKorf
3365837338
Updated tests
2022-11-13 15:31:28 +01:00
Jkorf
63d4af8543
Updated version
2022-02-24 12:55:59 +01:00
Jkorf
c792bc25b6
Small rework in options
2022-02-23 16:53:47 +01:00
Jkorf
c22b54c898
Squashed commit of the following:
...
commit 9450d447b9
Author: Jkorf <jankorf91@gmail.com >
Date: Fri Feb 18 11:05:46 2022 +0100
Updated version
commit bc0b55f337
Author: Jkorf <jankorf91@gmail.com >
Date: Fri Feb 18 10:09:26 2022 +0100
Added clientOrderId parameter to common clients
commit 31111006c7
Author: Jkorf <jankorf91@gmail.com >
Date: Thu Feb 17 16:32:53 2022 +0100
Update SpotClient.razor
commit e7400ce334
Author: Jkorf <jankorf91@gmail.com >
Date: Thu Feb 17 16:10:49 2022 +0100
Made some names more generic
commit 9bdef400da
Author: Jkorf <jankorf91@gmail.com >
Date: Tue Feb 15 11:38:41 2022 +0100
Updated vesrion
commit 3b80a945ee
Author: Jkorf <jankorf91@gmail.com >
Date: Tue Feb 15 11:34:50 2022 +0100
docs
commit 0268e211e9
Author: Jkorf <jankorf91@gmail.com >
Date: Tue Feb 15 09:56:45 2022 +0100
Immediate initial reconnect attempt when connection is lost
commit 6eb43c5218
Author: Jkorf <jankorf91@gmail.com >
Date: Fri Feb 11 13:59:05 2022 +0100
Re-added recalculation interval
commit 1df63ab60c
Author: Jkorf <jankorf91@gmail.com >
Date: Wed Feb 9 14:32:00 2022 +0100
Updated version
commit 9461b57daa
Author: Jkorf <jankorf91@gmail.com >
Date: Wed Feb 9 13:37:12 2022 +0100
Fix for time offset calculation not updating when offset is < 500ms
commit 105547d6b1
Author: Jan Korf <jankorf91@gmail.com >
Date: Sat Feb 5 21:05:10 2022 +0100
Updated version
commit 379ded6832
Author: Jan Korf <jankorf91@gmail.com >
Date: Sat Feb 5 20:29:57 2022 +0100
Fixed tests
commit b18204a52d
Author: Jan Korf <jankorf91@gmail.com >
Date: Sat Feb 5 20:28:08 2022 +0100
Added CancellationToken support on Common client interface and SymbolOrderBook, improved SymbolOrderBook start/stop robustness
commit baa23c2ecc
Author: Jan Korf <jankorf91@gmail.com >
Date: Sat Feb 5 14:56:32 2022 +0100
Added GetSubscriptionByRequest method on socket connection
commit 7aad9482a5
Author: Jkorf <jankorf91@gmail.com >
Date: Wed Feb 2 10:57:06 2022 +0100
Updated version
commit 6e4d9d225e
Author: Jkorf <jankorf91@gmail.com >
Date: Wed Feb 2 09:42:22 2022 +0100
Fixed exception when deserializing non-nullable datetime value '0' in .net framework
commit fd1a2bbda9
Author: Jkorf <jankorf91@gmail.com >
Date: Tue Jan 25 13:19:10 2022 +0100
Updated version
commit 2ece04dd58
Author: Jkorf <jankorf91@gmail.com >
Date: Tue Jan 25 13:17:25 2022 +0100
Refactored use of AutoResetEvent to AsyncResetEvent in SymbolOrderBook
commit 893d0c723d
Author: Jkorf <jankorf91@gmail.com >
Date: Tue Jan 25 13:01:21 2022 +0100
Fixed DateTime converter for nanosecond times in string format
commit 2c43ee7554
Author: Jkorf <jankorf91@gmail.com >
Date: Mon Jan 24 15:56:24 2022 +0100
Updated version version; fixed dependencies
commit 100a34d1a0
Author: Jkorf <jankorf91@gmail.com >
Date: Mon Jan 24 14:37:15 2022 +0100
Updated version
commit bb1071472f
Author: Jkorf <jankorf91@gmail.com >
Date: Mon Jan 24 14:31:57 2022 +0100
Re-added Common prefix for common enums to avoid conflicts with library namespaces
commit 37b1d18104
Author: Jkorf <jankorf91@gmail.com >
Date: Fri Jan 21 15:25:33 2022 +0100
Updated version
commit 325389cdf8
Author: Jan Korf <jankorf91@gmail.com >
Date: Thu Jan 20 21:08:51 2022 +0100
Added FTX to console example
commit 3e23882572
Author: Jkorf <jankorf91@gmail.com >
Date: Thu Jan 20 16:21:42 2022 +0100
Replaced Debug.WriteLine with Trace.WriteLine
commit 3cf5480cad
Author: Jan Korf <jankorf91@gmail.com >
Date: Wed Jan 19 22:07:22 2022 +0100
Example
commit fe31cf156d
Author: Jkorf <jankorf91@gmail.com >
Date: Wed Jan 19 16:35:08 2022 +0100
Examples
commit 7427914cb7
Author: Jkorf <jankorf91@gmail.com >
Date: Tue Jan 18 16:46:43 2022 +0100
Update index.md
commit 1bc6225814
Author: Jkorf <jankorf91@gmail.com >
Date: Tue Jan 18 16:45:10 2022 +0100
docs
commit 259fe6bfd1
Author: Jkorf <jankorf91@gmail.com >
Date: Tue Jan 18 14:25:20 2022 +0100
Update index.md
commit 5f9c075ac7
Author: Jkorf <jankorf91@gmail.com >
Date: Tue Jan 18 14:22:33 2022 +0100
Update index.md
commit a26514016a
Author: Jkorf <jankorf91@gmail.com >
Date: Tue Jan 18 14:13:35 2022 +0100
Update index.md
commit 01a97412bf
Author: Jkorf <jankorf91@gmail.com >
Date: Tue Jan 18 14:12:02 2022 +0100
docs
commit 24b503ca8c
Author: Jkorf <jankorf91@gmail.com >
Date: Tue Jan 18 13:42:12 2022 +0100
docs
commit 008b15b055
Author: Jkorf <jankorf91@gmail.com >
Date: Tue Jan 18 13:32:55 2022 +0100
docs
commit 66fce6cb84
Author: Jan Korf <jankorf91@gmail.com >
Date: Mon Jan 17 21:31:53 2022 +0100
docs
commit 0f65701f90
Author: Jan Korf <jankorf91@gmail.com >
Date: Mon Jan 17 21:25:33 2022 +0100
docs
commit f7a405a2e6
Author: Jkorf <jankorf91@gmail.com >
Date: Mon Jan 17 16:32:50 2022 +0100
docs
commit 55284c0549
Author: Jkorf <jankorf91@gmail.com >
Date: Mon Jan 17 15:51:03 2022 +0100
docs
commit 5bfbcca25b
Author: Jkorf <jankorf91@gmail.com >
Date: Mon Jan 17 14:04:08 2022 +0100
docs
commit cdbc0ba215
Author: Jkorf <jankorf91@gmail.com >
Date: Mon Jan 17 13:58:51 2022 +0100
docs
commit e33e7c6775
Author: Jkorf <jankorf91@gmail.com >
Date: Mon Jan 17 13:47:58 2022 +0100
docs
commit b65669659d
Author: Jkorf <jankorf91@gmail.com >
Date: Mon Jan 17 13:44:45 2022 +0100
docs
commit e51b863242
Merge: dbfe34f 088f35d
Author: Jkorf <jankorf91@gmail.com >
Date: Mon Jan 17 13:36:51 2022 +0100
Merge branch 'feature/new-cc' of https://github.com/JKorf/CryptoExchange.Net into feature/new-cc
commit dbfe34f534
Author: Jkorf <jankorf91@gmail.com >
Date: Mon Jan 17 13:35:46 2022 +0100
Docs
commit 088f35d420
Author: Jan Korf <jankorf91@gmail.com >
Date: Mon Jan 17 13:34:40 2022 +0100
Set theme jekyll-theme-cayman
commit e77add4d1c
Author: Jan Korf <jankorf91@gmail.com >
Date: Sat Jan 15 15:26:38 2022 +0100
Updated version
commit a37a2d6e31
Author: Jan Korf <jankorf91@gmail.com >
Date: Sat Jan 15 15:23:52 2022 +0100
Added CallResult tests, fixed response time not set
commit 8f6e853e13
Author: Jkorf <jankorf91@gmail.com >
Date: Fri Jan 14 16:47:49 2022 +0100
Added Request info and ResponseTime to WebCallResult, refactored CallResult ctors
commit c6bf0d67a4
Author: Jkorf <jankorf91@gmail.com >
Date: Fri Jan 7 16:30:02 2022 +0100
Fix typo
commit 996f3c2ced
Author: Jkorf <jankorf91@gmail.com >
Date: Fri Jan 7 16:23:42 2022 +0100
Some options logging
commit fb9e9f9aa6
Author: Jkorf <jankorf91@gmail.com >
Date: Fri Jan 7 15:10:27 2022 +0100
Updated version
commit 52ebacaa21
Author: Jkorf <jankorf91@gmail.com >
Date: Fri Jan 7 15:05:51 2022 +0100
Fixed symbol order book tostring not locking thread, Potential fix for request timeout showing unclear message
commit 6b45859934
Author: Jkorf <jankorf91@gmail.com >
Date: Mon Jan 3 14:08:35 2022 +0100
Updated example
commit ebe332b724
Author: Jkorf <jankorf91@gmail.com >
Date: Mon Jan 3 12:05:47 2022 +0100
Updated version
commit 8c24b46fb3
Author: Jkorf <jankorf91@gmail.com >
Date: Mon Jan 3 11:33:07 2022 +0100
Fixed typo Comon -> Common
commit 7a195f662c
Author: Jkorf <jankorf91@gmail.com >
Date: Mon Jan 3 09:37:50 2022 +0100
Updated example, removed global.json
commit 120132c45b
Author: Jan Korf <jankorf91@gmail.com >
Date: Sat Jan 1 20:30:35 2022 +0100
Reverted conditional refs
commit b3b4ed3f3f
Author: Jan Korf <jankorf91@gmail.com >
Date: Sat Jan 1 19:45:59 2022 +0100
Updated version
commit f4b4c93e64
Author: Jan Korf <jankorf91@gmail.com >
Date: Sat Jan 1 19:40:50 2022 +0100
Added new shared interface implementation
commit f8c3b37cdf
Author: Jan Korf <jankorf91@gmail.com >
Date: Tue Dec 28 14:14:15 2021 +0100
wip example
commit 0117737dfa
Author: Jan Korf <jankorf91@gmail.com >
Date: Tue Dec 28 14:13:14 2021 +0100
Added conditional refs for Microsoft.Extensions, added DependencyInjection.Abstractions to support extension method on IServiceCollection
commit 02c1f874e1
Author: Jan Korf <jankorf91@gmail.com >
Date: Mon Dec 27 15:32:07 2021 +0100
Updated version
commit b212842ec8
Author: Jan Korf <jankorf91@gmail.com >
Date: Mon Dec 27 15:27:14 2021 +0100
Added ExchangeName to IExchangeClient interface
commit c96e75d6c3
Author: Jkorf <jankorf91@gmail.com >
Date: Tue Dec 21 16:22:51 2021 +0100
Updated version
commit c62fbda3d7
Author: Jkorf <jankorf91@gmail.com >
Date: Fri Dec 17 14:17:30 2021 +0100
Added ApiClients list for managing api credentials, requests made and dispose
commit 04b43257a5
Author: Jkorf <jankorf91@gmail.com >
Date: Thu Dec 16 16:17:26 2021 +0100
Update .gitignore
commit 8ba0ded16d
Author: Jkorf <jankorf91@gmail.com >
Date: Mon Dec 13 12:57:31 2021 +0100
Fixed api credentials getting disposed, fixed DateTimeConverter losing precision
commit 5c665ad54c
Author: Jkorf <jankorf91@gmail.com >
Date: Fri Dec 10 16:35:42 2021 +0100
Refactoring and comments
commit b7cd6a866a
Author: Jan Korf <jankorf91@gmail.com >
Date: Wed Dec 8 21:49:25 2021 +0100
Auth work
commit c2105fe690
Author: Jkorf <jankorf91@gmail.com >
Date: Wed Dec 8 16:20:44 2021 +0100
Wip, support for time syncing, refactoring authentication
commit 8b479547ab
Author: Jkorf <jankorf91@gmail.com >
Date: Tue Dec 7 15:47:55 2021 +0100
Fixed release name
commit 2ab032b871
Author: Jkorf <jankorf91@gmail.com >
Date: Tue Dec 7 15:47:14 2021 +0100
Updated version
commit 48baaeb2d8
Author: Jkorf <jankorf91@gmail.com >
Date: Mon Dec 6 16:18:18 2021 +0100
Added periodic identifier
commit 60ec18919a
Author: Jan Korf <jankorf91@gmail.com >
Date: Sun Dec 5 17:26:55 2021 +0100
Added quotes to log
commit 0818c6277b
Author: Jkorf <jankorf91@gmail.com >
Date: Fri Dec 3 16:23:05 2021 +0100
Small changes
commit 6d0120d564
Author: Jkorf <jankorf91@gmail.com >
Date: Wed Dec 1 16:26:34 2021 +0100
Comments, fix test
commit 3c3b5639f5
Author: Jkorf <jankorf91@gmail.com >
Date: Wed Dec 1 13:31:54 2021 +0100
Refactor clients/options
commit 49de7e89cc
Author: Jkorf <jankorf91@gmail.com >
Date: Tue Nov 30 10:31:45 2021 +0100
Disposable changes, fixed tests
commit 69a6fabb79
Author: Jkorf <jankorf91@gmail.com >
Date: Mon Nov 29 16:43:27 2021 +0100
Restruct
commit 9a266e44ce
Author: Jkorf <jankorf91@gmail.com >
Date: Fri Nov 26 09:32:26 2021 +0100
Added enum converter
commit 78f81393a4
Author: Jkorf <jankorf91@gmail.com >
Date: Thu Nov 25 10:25:56 2021 +0100
Removed old timestamp converters
commit 9ebe5de825
Author: Jan Korf <jankorf91@gmail.com >
Date: Wed Nov 24 19:32:37 2021 +0100
Added AppendPath method
commit 8b619e82f2
Author: Jkorf <jankorf91@gmail.com >
Date: Wed Nov 24 16:39:14 2021 +0100
Added DateTimeConverter as replacement for individual converters, fix for not closing socket when auth fails
commit 7ac7a11dfe
Author: Jkorf <jankorf91@gmail.com >
Date: Wed Nov 17 10:23:01 2021 +0100
Resolved some code issues
commit 3784b0c62b
Author: Jkorf <jankorf91@gmail.com >
Date: Mon Nov 15 16:36:30 2021 +0100
Ratelimiter rework
commit cb1826da7a
Author: Jkorf <jankorf91@gmail.com >
Date: Fri Nov 12 09:40:42 2021 +0100
Documentation
commit f7445543f2
Author: Jkorf <jankorf91@gmail.com >
Date: Wed Nov 10 16:44:46 2021 +0100
Exposed order book id
commit 6c3462403f
Author: Jkorf <jankorf91@gmail.com >
Date: Wed Nov 10 13:18:52 2021 +0100
Fixed tests
commit f83127590a
Author: Jkorf <jankorf91@gmail.com >
Date: Wed Nov 3 08:27:03 2021 +0100
wip
commit 23bbf0ef88
Author: Jkorf <jankorf91@gmail.com >
Date: Wed Oct 27 12:57:23 2021 +0200
Added cancellation token support for socket subscriptions
commit b7f1619aec
Merge: 6ce6a46 f6af235
Author: Jkorf <jankorf91@gmail.com >
Date: Tue Oct 26 15:39:52 2021 +0200
Merge branch 'master' of https://github.com/JKorf/CryptoExchange.Net
commit 6ce6a46ca3
Author: Jkorf <jankorf91@gmail.com >
Date: Tue Oct 26 15:39:50 2021 +0200
Some renames
2022-02-18 11:06:34 +01:00