Components
Every current physical component is listed here from the runtime’s generated CMake catalogue—not from a second hand-maintained inventory.
Select direct needs
set(SHARP_RUNTIME_COMPONENTS
Net.Http.Json
IO.Hashing
)
set(SHARP_RUNTIME_BUILD_TESTS OFF CACHE BOOL "" FORCE)
add_subdirectory(sharp-runtime)
target_link_libraries(app PRIVATE
SharpRuntime::Net.Http.Json
SharpRuntime::IO.Hashing
)
CMake recursively enables public and private production dependencies. Consumers link only their direct targets.
Component families
Core and collectionsFoundation, console, URI, time zones, buffers and collection families.Text and dataText, regex, JSON, XML and XML LINQ.I/O and storageStreams, compression, ZIP, hashing and storage.NetworkingNet, sockets, HTTP, MIME, network information, security and WebSockets.ConcurrencyThreading, tasks, channels and timers.Numerics and globalizationGlobalization, numerics, diagnostics and runtime helpers.
Complete physical catalogue
| Component | Kind | Representative header | Production dependencies | External/platform |
|---|---|---|---|---|
Core.Base | static | SharpRuntime/Experimental/Property.hpp | — | — |
Console | static | System/Console.hpp | Core.Base | — |
Uri | static | System/Uri.hpp | Core.Base | — |
TimeZone | static | System/InvalidTimeZoneException.hpp | Core.Base | — |
Buffers | interface | System/Buffers/ArrayBufferWriter.hpp | Core.Base | — |
Collections.Core | interface | System/Collections/ArrayList.hpp | Core.Base | — |
Collections.Blocking | interface | System/Collections/Concurrent/BlockingCollection.hpp | Collections.CoreCore.BaseThreading | — |
Collections.Async | interface | System/Collections/Generic/IAsyncEnumerable.hpp | Threading | — |
Collections.ObjectModel | interface | System/Collections/ObjectModel/ObservableCollection.hpp | Collections.CoreComponentModelCore.Base | — |
ComponentModel | interface | System/ComponentModel/AsyncCompletedEventArgs.hpp | Core.Base | — |
Diagnostics | static | System/Diagnostics/CodeAnalysis/CodeAnalysisAttributes.hpp | Core.Base | — |
Globalization | static | System/Globalization/Calendar.hpp | Core.Base | — |
Numerics | static | System/Numerics/BigInteger.hpp | BuffersCollections.CoreCore.Base | — |
Runtime | static | System/Runtime/AmbiguousImplementationException.hpp | Collections.CoreCore.Base | — |
Text | static | System/Text/ASCIIEncoding.hpp | BuffersCore.Base | — |
Text.Json | static | System/Text/Json/JsonCommentHandling.hpp | Core.BaseTextCollections.Core (private) | — |
Text.RegularExpressions | interface | System/Text/RegularExpressions/Capture.hpp | Core.Base | — |
Threading | static | System/AsyncCallback.hpp | Core.BaseTimeZone | — |
Threading.Tasks | static | System/IAsyncDisposable.hpp | Core.BaseThreading | — |
Threading.Channels | interface | System/Threading/Channels/BoundedChannelFullMode.hpp | Core.BaseThreading.Tasks | — |
Timers | static | System/Timers/ElapsedEventArgs.hpp | ComponentModelCore.BaseThreading (private) | — |
IO | static | System/BinaryData.hpp | Core.BaseUriTimeZone (private) | — |
IO.Compression | static | System/IO/Compression/CompressionArgumentValidation.hpp | BuffersCore.BaseIO | ZLIB (private) |
IO.Compression.Zip | static | System/IO/Compression/CompressionLevel.hpp | IOCore.Base (private) | vendored miniz (private) |
IO.Hashing | static | System/IO/Hashing/Adler32.hpp | Core.BaseIO | — |
Storage | static | SharpRuntime/Storage/StoragePaths.hpp | — | parent-provided SDL3 on Android (private) |
IO.IsolatedStorage | static | System/IO/IsolatedStorage/IsolatedStorage.hpp | Core.BaseIOStorage (private) | — |
Net | static | System/Net/Cookie.hpp | Collections.CoreComponentModelCore.BaseUri | ws2_32 on Windows (private) |
Net.Sockets | static | System/Net/Sockets/IPPacketInformation.hpp | Core.BaseIONetThreading.Tasks | — |
Net.Http | static | System/Net/Http/ByteArrayContent.hpp | Core.BaseIONetThreadingThreading.TasksUri (private) | — |
Net.Http.Headers | static | System/Net/Http/Headers/AuthenticationHeaderValue.hpp | Collections.CoreCore.BaseUriNet (private) | — |
Net.Http.Json | interface | System/Net/Http/Json/HttpClientJsonExtensions.hpp | Core.BaseNet.HttpText.JsonThreading.Tasks | — |
Net.Mime | static | System/Net/Mime/ContentType.hpp | Collections.CoreCore.Base | — |
Net.NetworkInformation | static | System/Net/NetworkInformation/IPStatus.hpp | ComponentModelCore.BaseNetThreading.Tasks | — |
Net.Security | interface | System/Net/Security/AuthenticationLevel.hpp | Core.Base | — |
Net.WebSockets | static | System/Net/WebSockets/ClientWebSocket.hpp | ComponentModelCore.BaseNetNet.SocketsThreadingThreading.TasksUri | — |
Security | interface | System/Security/Authentication/AuthenticationException.hpp | Core.Base | — |
Security.Cryptography | static | System/Security/Cryptography/AuthenticationTagMismatchException.hpp | Core.Base | — |
Security.Cryptography.Random | static | System/Security/Cryptography/RNGCryptoServiceProvider.hpp | Core.Base | bcrypt on Windows (private) |
Xml | static | System/Xml/ConformanceLevel.hpp | Core.BaseUriDiagnostics (private) | vendored tinyxml2 (public) |
Xml.Linq | static | System/Xml/Linq/Extensions.hpp | Core.BaseXml | — |
Compatibility targets
| Target | Role | Direct contents |
|---|---|---|
Core | compatibility umbrella | Console, Core.Base, TimeZone, Uri |
Collections | compatibility umbrella | Collections.Async, Collections.Blocking, Collections.Core, Collections.ObjectModel |
Xml.XPath | alias of Xml | Xml |
All | compatibility umbrella | Buffers, Collections.Async, Collections.Blocking, Collections.Core, Collections.ObjectModel, ComponentModel, Console, Core.Base, Diagnostics, Globalization, IO, IO.Compression, IO.Compression.Zip, IO.Hashing, IO.IsolatedStorage, Net, Net.Http, Net.Http.Headers, Net.Http.Json, Net.Mime, Net.NetworkInformation, Net.Security, Net.Sockets, Net.WebSockets, Numerics, Runtime, Security, Security.Cryptography, Security.Cryptography.Random, Storage, Text, Text.Json, Text.RegularExpressions, Threading, Threading.Channels, Threading.Tasks, TimeZone, Timers, Uri, Xml, Xml.Linq |
SharpRuntime::Headers is an always-present support target rather than a selectable component. The raw legacy SHARP_RUNTIME target forwards to All only in a complete configuration.
Synchronization
tools/sync_components.py reads docs/ComponentCatalog.md from a pinned Sharp Runtime checkout and records the source SHA. tools/validate_site.py can compare the committed data against that checkout, preventing catalogue drift.