Speckle is the first AEC data hub that connects with your favorite AEC tools. Speckle exists to overcome the challenges of working in a fragmented industry where communication, creative workflows, and the exchange of data are often hindered by siloed software and processes. It is here to make the industry better.
Warning
Releases Speckle.Sdk and Speckle.Objects are reliable for production use, but the APIs may not be wholly stable, and there may be breaking changes between releases, with little documentation.
This repo is the home of our next-generation Speckle .NET SDK. It uses .NET Standard 2.0 and has been tested on Windows and MacOS.
- SDK
Speckle.Sdk
: Send/Receive operations, Serialization, API wrappers, and more!.Speckle.Sdk.Dependencies
: Dependencies and code that shouldn't cause conflicts in Host Apps. This uses IL Repack to merge together and interalized only to be used by Speckle.Speckle.Automate.Sdk
: .NET SDK for Speckle Automate
- Speckle Objects
Speckle.Objects
: The Speckle Objects classes used for conversions.
- Tests
Tests
: Unit, serialization, integration, and performance tests.
Make sure to also check and ⭐️ these other repositories:
speckle-sharp-connectors
: our csharp repo of next gen connectors.speckle-server
: the speckle server.speckle-sketchup
: Blender connector.speckle-sketchup
: Sketchup connector.speckle-powerbi
: PowerBi connector.- and more connectors & tooling!
Comprehensive developer and user documentation can be found in our:
Ensure you're using a 8.0.4xx .NET SDK. After cloning this repository, just restore all the NuGet packages and hit Build!
It is highly recommended you use
- Either Jetbrains Rider or Visual Studio 2022
- Ensure your IDE is set to use the correct .NET SDK version (newer major versions may work, but may incorrectly run analysers we haven't configured)
- You should install the cshapier plugin (Rider, VS) and configure it to run on save
Docs are a bit patchy https://docs.speckle.systems/developers/looking-for-developer-docs
There are several test projects. It is a requirement that all tests pass for PRs to be merged. The Integration test projects require a local server to be running.
You must have docker installed. Then you can run docker compose up --wait
from the root of the repo to start the required containers.
Before embarking on submitting a patch, please make sure you read:
For any security vulnerabilities or concerns, please contact us directly at security[at]speckle.systems.
Unless otherwise described, the code in this repository is licensed under the Apache-2.0 License. Please note that some modules, extensions or code herein might be otherwise licensed. This is indicated either in the root of the containing folder under a different license file, or in the respective file's header. If you have any questions, don't hesitate to get in touch with us via email.