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 Speckle .NET SDK.
- 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!
Developer docs are a bit patchy. See our 📚 Speckle Docs website
To build solutions in this repo, version 10.0.2xx of the .NET SDK is required.
It is recommended to use JetBrains Rider (version 2025.3 or greater) or Microsoft Visual Studio 2026 (version 18.4 or greater)
From there you can open the main Speckle.Sdk.slnx solution and build the project.
We're using CSharpier to format our code. You can use Csharpier in a few ways:
- Install CSharpier and reformat from CLI
dotnet tool restore dotnet csharpier format ./ - Install the CSharpier extension for Rider or Visual Studio
For best DX, we recommend turning on CSharpier'sreformat on savesetting if you've installed it in your IDE.
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 from the root of the repo to start the required containers.
In CI, they will be run against both the public and private versions of the server. It is important that we remain compatible with both server versions.
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.
