Components & Modules

40 opt-in CMake components, stable System/* include paths, and a focused dependency closure for every consumer.

ℹ Selecting components
New applications request the components they use and link their direct targets. sharp-runtime resolves public dependencies automatically. The complete runtime remains available through SharpRuntime::All.
set(SHARP_RUNTIME_COMPONENTS
    Net.WebSockets
    Text.Json
)
set(SHARP_RUNTIME_BUILD_TESTS OFF CACHE BOOL "" FORCE)
add_subdirectory(sharp-runtime)

target_link_libraries(MyApp PRIVATE
    SharpRuntime::Net.WebSockets
    SharpRuntime::Text.Json
)

Physical Component Catalogue

Static components compile implementation sources. Interface components contribute headers and their dependency closure without producing a separate archive.

ComponentKindPhysical moduleScope
Core.BaseStaticcoreFoundation types and core System APIs
ConsoleStaticconsoleConsole APIs
UriStaticuriURI and URI builder APIs
TimeZoneStatictime-zoneTime zone APIs
BuffersInterfacebuffersSpan, memory, pools, sequences, and binary helpers
Collections.CoreInterfacecollectionsSynchronous, immutable, concurrent, and specialized collections
Collections.AsyncInterfacecollections-asyncAsync enumerable interfaces
Collections.ObjectModelInterfacecollections-object-modelObservable and object-model collections
ComponentModelInterfacecomponent-modelComponent-model attributes and notifications
DiagnosticsStaticdiagnosticsDiagnostics and code-analysis APIs
GlobalizationStaticglobalizationCultures, calendars, and formatting
NumericsStaticnumericsVectors, matrices, BigInteger, and numeric helpers
RuntimeStaticruntimeRuntime compatibility APIs
TextStatictextEncodings, StringBuilder, and text primitives
Text.JsonStatictext-jsonJSON APIs
Text.RegularExpressionsInterfacetext-regular-expressionsRegular-expression compatibility APIs
ThreadingStaticthreadingThreads, synchronization, and cancellation
Threading.TasksStaticthreading-tasksTask and ValueTask APIs
Threading.ChannelsInterfacethreading-channelsChannel APIs
TimersStatictimersSystem::Timers APIs
IOStaticioStreams, files, directories, and binary I/O
IO.CompressionStaticio-compressionCompression streams; owns ZLIB
IO.Compression.ZipStaticio-compression-zipZIP APIs; owns miniz
IO.HashingStaticio-hashingChecksums and hashing
StorageStaticstoragePlatform storage paths
IO.IsolatedStorageStaticio-isolated-storageIsolated storage APIs
NetStaticnetCommon network types
Net.SocketsStaticnet-socketsSocket clients and streams
Net.HttpStaticnet-httpHTTP client and content APIs
Net.Http.HeadersStaticnet-http-headersHTTP header value types
Net.Http.JsonInterfacenet-http-jsonHTTP JSON extensions
Net.MimeStaticnet-mimeMIME content types
Net.NetworkInformationStaticnet-network-informationNetwork information APIs
Net.SecurityInterfacenet-securityNetwork-security compatibility types
Net.WebSocketsStaticnet-websocketsWebSocket client APIs
SecurityInterfacesecuritySecurity compatibility types
Security.CryptographyStaticsecurity-cryptographyHashing and cryptography compatibility APIs
Security.Cryptography.RandomStaticsecurity-cryptography-randomCryptographic random-number APIs
XmlStaticxmlXML APIs; owns tinyxml2
Xml.LinqStaticxml-linqLINQ-to-XML APIs

Compatibility Components

These targets preserve broad historical surfaces. New code should use a narrow component from the table above.

ComponentMeaning
CoreCompatibility umbrella for Core.Base, Console, Uri, and TimeZone.
CollectionsCompatibility umbrella for all three collections components.
Xml.XPathAlias of the Xml component.
AllAggregate of every physical component, exposed as SharpRuntime::All.
SHARP_RUNTIMELegacy target which forwards to SharpRuntime::All only when All is selected.

Subsystem Reference