Skip to content

Latest commit

 

History

1,825 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation


Speckle | Sharp | Connectors

Twitter Follow Community forum users website docs

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.

.NET Desktop UI, Connectors, and Converters

Codecov

Speckle 4.0 artefact rewrite

Migrating connectors onto the client-side parquet artefact pipeline (send/receive without server-side serialization). Architecture, the per-connector status table, and the recipe for migrating a new connector live in docs/4.0-artefact-rewrite.md — read it before starting a connector. Core rule: every sender adds an IArtifactRootObjectBuilder, every receiver adds an IArtifactHostObjectBuilder, and the old Base-oriented logic is not used on the 4.0 path.

Repo structure

This repo is the home of our next-generation Speckle .NET projects:

Other repos

Make sure to also check and ⭐️ these other Speckle next generation repositories:

Developing and Debugging

Developing

To build solutions in this repo, 10.0.4xx of the .NET SDK is required.

It is recommended to use Jetbrains Rider (version 2026.1 or greater) or Visual Studio 2026 (version 18.4 or greater)

From there you can open the main Speckle.Connectors.slnx solution and build the project.

For good development experience and environment setup, you the commands are available needed.

Formatting

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's reformat on save setting if you've installed it in your IDE.

Build Commands

Clean Locks

We're using package locks to store exact and versioned dependency trees. Occasionally you will need to clean your local package-lock files, eg when switching between Speckle.Connectors.slnx and Local.slnx. Run this command in CLI to delete all package.lock.json files before a restore:

.\build.ps1 clean-locks

Deep Clean

To make sure your local environment is ready for a clean build, run this command to delete all bin and obj directories and restore all projects:

.\build.ps1 deep-clean

Deep Clean Local

This is for users of the Local.slnx solution:

To make sure your local environment is ready for a clean build, run this command to delete all bin and obj directories and restore all projects:

.\build.ps1 deep-clean-local

Local development with SDK changes

If you'd like to make changes to the speckle-sharp-sdk side-by-side with changes to this repo's projects, use **Local.slnx**.
This solution includes the Core and Objects projects from the speckle-sharp-sdk repo, and uses a new Configuration to create a build directory alongside Debug and Release.

Warning

Using Local.slnx will modify all your package locks. Don't check these in! Revert with the clean-locks command or use the regular solution to revert once your changes are made.

Security and Licensing

Security

For any security vulnerabilities or concerns, please contact us directly at security[at]speckle.systems.

License

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.

Releases

Used by

Contributors

Languages