Commit Graph

168 Commits

Author SHA1 Message Date
Adam Hathcock e10cc38ca7 Give new dependencies lib ability to publish (#148) 2024-10-24 13:53:10 +00:00
Adam Hathcock b6d2d01068 Tasks hide new dependencies (#145)
* Use a stack channel for deserialization

* multi-threaded

* add object dictionary pool

* more pooling

* adjust sqlite transport

* format

* Optimize IsPropNameValid

* object loader first pass

* save test

* add cache pre check

* save better deserialize

* mostly works

* uses tasks but slower at end

* rework to make more sense

* add check to avoid multi-deserialize

* modify max parallelism

* async enqueuing of tasks

* switch to more asyncenumerable

* fmt

* fmt

* cleanup sqlite

* make ServerObjectManager

* revert change

* add ability to skip cache check

* cache json to know what is loaded

* testing

* clean up usage

* clean up and added new op

* Fix exception handling

* fixing progress

* remove codejam

* Hides ObjectPool dependency

* fmt

* Use the 1.0 BCL async to try to be more compatible

* rename to dependencies

* Move Polly to internal dependencies

* format

* remove more old references

* remove stackchannel

* fixes for registration

* remove console writeline

* add cache check shortcut for root object

* recevie2 benchmark

* add test for deserialize new

* Use same asyncinterfaces as Dynamo.  Merge fixes

* clean up

* fix download object progress

---------

Co-authored-by: Jedd Morgan <45512892+JR-Morgan@users.noreply.github.com>
2024-10-24 15:23:16 +02:00
Adam Hathcock cca8828565 Using Tasks for Deserialization (#143)
* Use a stack channel for deserialization

* multi-threaded

* add object dictionary pool

* more pooling

* adjust sqlite transport

* format

* Optimize IsPropNameValid

* object loader first pass

* save test

* add cache pre check

* save better deserialize

* mostly works

* uses tasks but slower at end

* rework to make more sense

* add check to avoid multi-deserialize

* modify max parallelism

* async enqueuing of tasks

* switch to more asyncenumerable

* fmt

* fmt

* cleanup sqlite

* make ServerObjectManager

* revert change

* add ability to skip cache check

* cache json to know what is loaded

* testing

* clean up usage

* clean up and added new op

* Fix exception handling

* fixing progress

* remove codejam

* remove stackchannel

* remove console writeline

* add cache check shortcut for root object

* recevie2 benchmark

---------

Co-authored-by: Jedd Morgan <45512892+JR-Morgan@users.noreply.github.com>
2024-10-22 14:14:39 +01:00
Adam Hathcock 3c783b3cac retry result can be null so handle it better (#142)
Co-authored-by: Alan Rynne <alan@rynne.es>
2024-10-17 09:38:09 +00:00
Jedd Morgan 8f8be7482a Added workspace id to v3 sdk (#134)
* Added workspace id to v3 sdk

* use init setter
2024-10-15 12:57:15 +01:00
Adam Hathcock 3b859ba398 Add headers to outgoing http requests for Open Telemetry (#141)
* Add otel headers to outgoing http client requests

* format
2024-10-14 10:40:29 +01:00
Adam Hathcock 4c52072e0a Optimize IsPropNameValid (#140)
* Optimize IsPropNameValid

* compare char to char
2024-10-11 09:44:45 +00:00
Dimitrie Stefanescu 1241589d18 Adds new classes for raw encoded objects (Brep, Extrusion and Subd) (#139)
* feat: adds wip classes for brep/subd/extrusion-x

* Get rid of dub code on ExtrusionX SubDX BrepX

* fix: Run format

* chore: formatting

* chore: more formatting

help dis annoying

---------

Co-authored-by: oguzhankoral <oguzhankoral@gmail.com>
Co-authored-by: Alan Rynne <alan@speckle.systems>
Co-authored-by: Adam Hathcock <adamhathcock@users.noreply.github.com>
2024-10-10 09:26:55 +00:00
Adam Hathcock 1a9d28e660 add metrics to sdk (#133)
* add metrics to sdk

* metrics for sends and receives

* format
2024-10-10 10:32:52 +02:00
Adam Hathcock e14913b8c3 Fix deserialization progress reporting (#137)
* Fix progress reporting for deserialization, remove children known count

* fix tests
2024-10-09 11:57:48 +01:00
Alan Rynne 0d7805d060 feat: Added new speckle exceptions and split into single files (#136)
* feat: Added new speckle exceptions and split into single files

* fix: Run format
2024-10-07 17:14:59 +02:00
Adam Hathcock 14359333b4 Nuget Updates (#132)
* update test packages

* update csharpier
2024-10-07 12:48:00 +02:00
Adam Hathcock 75d88c5f39 Use IProgress instead of custom type (#131)
* Use IProgress instead of custom type

* Format

* ProgressArgs are a readonly struct

* fix tests
2024-10-02 10:50:49 +01:00
Adam Hathcock 9a3eddf6d5 use array defaults (#129) 2024-09-27 11:00:21 +01:00
Jedd Morgan f541525a80 Regex experimentation (#128) 2024-09-26 13:58:48 +01:00
Adam Hathcock c3e8a95bf1 Merge pull request #126 from specklesystems/some-optimizations
Some  allocation optimizations
2024-09-26 12:51:13 +01:00
Adam Hathcock c2d0e1d0d4 use await instead of .Result 2024-09-26 08:13:58 +01:00
Adam Hathcock f0d83d8d43 Merge remote-tracking branch 'origin/dev' into some-optimizations 2024-09-26 08:13:04 +01:00
Adam Hathcock ba14a8c87f Use pool more 2024-09-25 16:35:58 +01:00
Jedd Morgan 065a2318d3 Jedd/cxpla 84 add commit context to receive trace (#125)
* Smells like v2

* Fixed issue with cancellation of ParallelServerApi

* activity ok

* Serialize json

* settags extension method

* Isbusy fix

* Final polish

* added CallerMemberName

* removed absractions
2024-09-25 16:35:38 +01:00
Adam Hathcock 40d025bb57 use pool and more ValueTask 2024-09-25 16:24:57 +01:00
Adam Hathcock ddeac27f04 Use pool and remove some async 2024-09-25 16:20:31 +01:00
Adam Hathcock d73bf365c2 Clean app plugin registration and all speckle plugin verisons (#123)
* Clean app plugin registration and all speckle plugin verisons

* fix naming
2024-09-20 09:32:29 +02:00
Adam Hathcock 198f1a2564 Remove STJ dependency (#122) 2024-09-19 14:11:16 +01:00
Jedd Morgan 694e9e1915 Fixed issue with cancellation of ParallelServerApi (#121) 2024-09-18 09:06:53 +00:00
Adam Hathcock 0f29aacf24 Making SDK non-static (#116)
* initial burn

* fix: Minor fixes, some pending

* fix: Minor fix + DeepClean target

* setup things to be injected

* things compile and activites are instanced

* compiles except tests

* tests compile

* fmt

* fix merge

* Activities are now an interface

* fmt

* fully remove logging DLL

* clean up

* fix tests

* more cleanup

* Fix integration tests

* clean up hash tests

* clean up path provider

* more cleanup for path

* merge fixes

* Merge fixes

* remove some extra classes

---------

Co-authored-by: Alan Rynne <alan@speckle.systems>
2024-09-17 15:51:50 +01:00
Jedd Morgan a28cf6d908 Merge pull request #119 from specklesystems/jrm/main-merge
Update Http Send trace (#118)
2024-09-16 15:42:37 +01:00
Jedd Morgan 2cb5d6e410 Fix using directives 2024-09-16 13:43:43 +01:00
Jedd Morgan 59628d5241 Merge remote-tracking branch 'origin/dev' into jrm/main-merge 2024-09-16 13:39:05 +01:00
Adam Hathcock bbe23f6996 Update Http Send trace (#118)
* Update Http Send trace

* format
2024-09-16 12:45:04 +02:00
Jedd Morgan df5b151c90 Test Coverage (#117) 2024-09-16 08:41:26 +01:00
Jedd Morgan ccb4f54550 Jedd/cxpla 55 add required keyword for more geometry types (#101)
* Sdk

* Objects

* Supressed IDE warnings via editor config instead of nowarn

* Nullability and other warnings

* using

* Required keyword on lines and meshes

* Fixed test project

* fixed tests

* Proxies

* Fixed equality of Point

* IEquatable

* Fixed issue with serialization of detached lists

* Added tests for jsonIgnore affecting id calc

* removed comments

* Fixed issue with fallback to double on large values

* Fixed undocumented large number support
2024-09-13 14:47:29 +01:00
Jedd Morgan 30a3533956 Simplified props files (#115)
* Simplified props files

* Private package
2024-09-12 12:06:50 +00:00
Adam Hathcock e07bfc18d5 Remove async from serializer (#113)
* Remove async from serializer

* Make GetId be sync

* fix chunking?

* Chunking Tests (#114)

* fmt

* Fixed speckle type

---------

Co-authored-by: Jedd Morgan <45512892+JR-Morgan@users.noreply.github.com>
2024-09-11 15:35:59 +01:00
Adam Hathcock 2ad14ca00b Fix serialization of ignored (#112)
* Fixed issue with serialization of detached lists

* Added tests for jsonIgnore affecting id calc

* use extra writer and pass tests

* avoid returning extra object

* fix tests

* Add span overload back

* fmt

---------

Co-authored-by: Jedd Morgan <45512892+JR-Morgan@users.noreply.github.com>
2024-09-10 13:17:46 +01:00
Jedd Morgan 450dbcce81 Sha256 hash with spans (#107)
* Sha256 hash with spans

* HashData

* NumericFormat

* Tests

* md5 test

* xml

* use utf16 encoding rather than utf8

---------

Co-authored-by: Alan Rynne <alan@rynne.es>
2024-09-09 12:43:32 +00:00
Jedd Morgan 296a00e2eb Ralph's suggested changes (#105) 2024-09-09 12:23:49 +00:00
Alan Rynne f085a3fb5a Merge pull request #109 from specklesystems/main
Back Merge main->Dev
2024-09-09 14:18:39 +02:00
Alan Rynne 56c4109210 fix(docker): Update docker-compose.yml server healthcheck (#108)
* fix: Use node location instead of relying on $PATH

* fix: Update to /readiness endpoint instead of /liveness
2024-09-09 11:21:43 +00:00
Adam Hathcock 92bcb51bf2 Disable snupkg for logging (#104) 2024-09-05 17:35:32 +01:00
Adam Hathcock ce3d610ac5 Add CancellationToken usage to Closure parsing (#103)
* Add CancellationToken usage to Closure parsing

* fmt
2024-09-05 16:53:26 +01:00
Adam Hathcock 1be044e442 Remove redundant Contains/GetHashCode (#102) 2024-09-05 15:12:58 +01:00
Adam Hathcock cc7d274f43 Add .NET 8 targets (#97)
* Add targets to csproj and fixed up logging

* Logging compiles

* SDK compiles

* Objects compiles

* fmt

* fix build naming

* remove net6.0

* more null fixes

* merge fixes
2024-09-05 15:12:22 +01:00
Adam Hathcock 0b1de566df Async GetObject and Async Deserialization (#95)
* 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
2024-09-04 13:45:56 +01:00
Jedd Morgan 5e0ea324c3 Re-introduced code analysers and fixed many violations (#92)
* Sdk

* Objects

* Supressed IDE warnings via editor config instead of nowarn

* Nullability and other warnings

* using

* Fixed warnings

* Important fix

* More fixes
2024-09-04 11:49:35 +00:00
Jedd Morgan b9180027c5 Detach Levels (#99) 2024-09-03 18:14:22 +01:00
Adam Hathcock 77a40a3af5 Merge pull request #98 from specklesystems/main
Main to dev
2024-09-03 16:39:07 +01:00
Adam Hathcock 22f4945d71 Json reader deserialize (#88)
* 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

* uncomment and fix tests

* don't allow things to exist in the closure table that doesn't exist

* detach blob tests

* rename serializer

* revert

* fix blob tests again
2024-09-03 15:53:50 +01:00
Jedd Morgan c0f8949705 Jedd/cxpla 33 move performance test project (#87)
* Moved performance test project

* register types

* perf tests
2024-09-02 15:41:48 +00:00
Adam Hathcock 7883cd9d32 Don't use Serilog global static logger in v3 (#96)
* Don't use Serilog global static logger in v3

* make logger be internal only
2024-09-02 13:52:27 +01:00