* Use Concurrent Dictionaries and ignore case on them to avoid ToLower * remove single array allocation * allocate GetClosures differently * Use JsonReader for closures * add comment * use isdefined * more readonly with less allocations * sorts * fmt * use element type when making an array * first pass * Fix reading for object and array * serialization works? * Fix closure parsing * things are way faster * Deserialize is async * fmt * renames * remove deserialize threads * fmt * faster to use ordinal compare * serialization looks okay * fix closure writing * fixes * use possibly different values for compute id * use closure parser on download * memory test for blobs * decompose serialization * fmt * fmt * for decomposing, values should be used instead of original * set id after computing it * redo more closure parsing * fix memory test * don't throw on try get deserialized * fmt * fix integration tests * fix tests * disable memory blob storage by default * put back ? * merge fixes and delete worker threads * fmt * serialization of old floats pass * serialization of old floats pass * rename class * Use async/await on GetObject * await deserialization * fmt * uncomment and fix tests * don't allow things to exist in the closure table that doesn't exist * detach blob tests * rename serializer * async more correct * revert * fix merge * fix blob tests again * more fixes * Fix building * async fixes * more async fixes * fix tests? * rename GetId to GetIdAsync * clean up * more cleanup * fmt * fix test * fix analyzer errors * use ConcurrentDictionary to be thread safe
Core
Disclaimer
This is an early alpha release, not meant for use in production! We're working to stabilise the 3.0 API, and until then there will be breaking changes. You have been warned!
Introduction
Core
Core is the .NET SDK for Speckle 3.0. It uses .NET Standard 2.0 and has been tested on Windows and MacOS.
Documentation
Comprehensive developer and user documentation can be found in our:
📚 Speckle Docs website
Developing & Debugging
Building
Make sure you clone this repository together with its submodules: git clone https://github.com/specklesystems/speckle-sharp-sdk.git -recursive.
Afterwards, just restore all the NuGet packages and hit Build!
Developing
This project is evolving fast, to better understand how to use Core we suggest checking out the Unit and Integration tests. Running the integration tests locally requires a local server running on your computer.
We'll be also adding preliminary documentation on our forum.
Tests
There are two test projects, one for unit tests and one for integration tests. The latter needs a server running locally in order to run.
Contributing
Before embarking on submitting a patch, please make sure you read:
Community
The Speckle Community hangs out on the forum, do join and introduce yourself & feel free to ask us questions!
License
Unless otherwise described, the code in this repository is licensed under the Apache-2.0 license.