The gist
SymbolSource is an integrated solution for hosting and browsing code releases - specifically, but not only, NuGet and OpenWrap packages. It's true power, however, comes from implementing the srcsrv protocol, which allows Visual Studio and other compatible software to download on-demand symbol (PDB) and source files from SymbolSource. What this means for you, is that by doing a bit of configuration in your development environment, you'll be able to source step during debugging into the code of libraries that you use - both open source and commercial. SymbolSource has been created out of a real need and is being maintained by developers for developers.
Use cases
All developers
| Access symbols (PDB files) and sources of third-party libraries on-demand while debugging and source stepping in Visual Studio , WinDbg or any other srcsrv compatible application, like Process Explorer from SysInternals . Symbol and source servers provide a huge productivity boost and are many times the only way to analyze behaviour of running code, especially in production environments, where only release binaries are used. | Safely share private projects with others using NuGet and OpenWrap packages hosted in SymbolSource Private Repositories . Read and write permissions to whole repositories or only specific projects or versions can be assigned flexibly to any other user of SymbolSource. Private Repositories also support on-demand symbol and source downloads during debugging. |
Open source contributors
| Host symbols and sources for the projects you mantain. SymbolSource provides a free hosting service, so that all OSS project releases can be debugged at least as easily as the .NET Framework can using the Microsoft Reference Source Server . Permissions to publish to public symbol repositories like NuGet are determined by contacting their respective mainstream hosts - in this case nuget.org . SymbolSource accepts uploads through NuGet or OpenWrap compatible tools as standard packages, or as custom ZIP files using a wizard available on the web site. | Create SymbolSource Private Repositories for pre-release versions of projects, separate from mainstream hosts like nuget.org , but still available to everyone for read access. This allows true pre-release package testing, without the need to setup any additional infrastructure or the risk of polluting official package feeds. Although anyone can download packages, symbols and sources from a correctly configure repository, only appointed maintainers are able to publish. |
Enterprise users
| Maintain a separate database of users and repositories for internal company use. SymbolSource Company Accounts provide all of the publicly available features: NuGet and OpenWrap package hosting, on-demand symbol and source file download and an extensive permission system - plus the possibility to manage user accounts, enforce consistent login names and create an unlimited number of arbitrarily named repositories. | SymbolSource exposes all of its features through a SOAP API , which allows administrators to automatically provision user accounts and integrate with existing infrastructure, both in terms of content management and access control. |
Commercial library vendors
| Use SymbolSource as a secure distribution platform for developer-focused software products. Companies developing control or utility libraries can use SymbolSource as a flexible platform for release distribution. Binaries, symbols and sources can be uploaded using standardized, easy-to-automate tools like NuGet and OpenWrap , providing customers with all of the benefits of having a well-known debugging server and making available all other features of SymbolSource, like online code navigation and analysis. | Automatically grant permissions on the version/release level using SymbolSource's SOAP API . SymbolSource can honour any sales policy set up by a library vendor, wether it involves specific release purchases, subscription models, or any combination thereof - and can be integrated with exisisting web sites or CRM solutions. |
Available editions
Depending on your needs, you can use the following editions of SymbolSource.
| SymbolSource.org | SymbolSource.org Company Account |
SymbolSource.SimpleServer | SymbolSource.SimpleServer Embedded Edition |
SymbolSource Local Instance |
|
|---|---|---|---|---|---|
| Recommended users |
|
|
|
|
|
| Licensing model | software as a service | software as a service | open source | commercial license | boxed edition |
| Pricing model | free for all | monthly fee (free during beta) | free for all | single payment | single payment or subsription (free during beta) |
| Getting started | register or login | contact us to provision an account | Install-Package SymbolSource.SimpleServer.NuGet (comming soon) | contact us to prepare an agreement | (comming soon) |
Feature matrix
Summed up, the main functionality of various SymbolSource editions covers the following areas.
| SymbolSource.org | SymbolSource.org Company Account |
SymbolSource.SimpleServer | SymbolSource.SimpleServer Embedded Edition |
SymbolSource Local Instance |
|
|---|---|---|---|---|---|
| Serving symbols (PDB files) and sources on-demand to Visual Studio , WinDbg and other software compatible with the srcsrv protocol | ![]() |
![]() |
![]() |
![]() |
![]() |
| Validating all symbol package uploads for completeness and correctness | ![]() |
![]() |
![]() |
![]() |
![]() |
| Validating packages client-side with a dedicated NuGet Package Explorer plugin | ![]() |
![]() |
![]() |
![]() |
![]() |
| Hosting repositories of NuGet and OpenWrap packages in addition to symbol/source only repositories | ![]() |
![]() |
![]() |
||
| Providing online source code navigation and analysis (more coming soon) | ![]() |
![]() |
![]() |
||
| Securing access independently to repositories, projects and versions, with separate pemissions for read and write operations | ![]() |
![]() |
![]() |
||
| Exposing a management interface to all content and metadata through the web site and a SOAP API | ![]() |
![]() |
![]() |
||
| Maintaining separate user and repository databases with additional branding options | ![]() |
![]() |
|||
| Integrated with nuget.org and myget.org | ![]() |
||||
| Providing out of the box integration with any NuGet Gallery instance | ![]() |
![]() |
See also
- Why everyone should be using a symbol server by Xavier Decoster
- Publishing symbol packages for a MyGet feed by Maarten Balliauw
- Package validation in NuGet Package Explorer and Updated NuGet Package Explorer Plugin by Marcin Mikołajczak
- Using SymbolSource as an OpenWrap repository by Marcin Mikołajczak
- Announcing private symbol and source repositories by Marcin Mikołajczak
- The easy way to publish NuGet packages with sources by David Ebbo

