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.
| Component | Kind | Physical module | Scope |
|---|---|---|---|
Core.Base | Static | core | Foundation types and core System APIs |
Console | Static | console | Console APIs |
Uri | Static | uri | URI and URI builder APIs |
TimeZone | Static | time-zone | Time zone APIs |
Buffers | Interface | buffers | Span, memory, pools, sequences, and binary helpers |
Collections.Core | Interface | collections | Synchronous, immutable, concurrent, and specialized collections |
Collections.Async | Interface | collections-async | Async enumerable interfaces |
Collections.ObjectModel | Interface | collections-object-model | Observable and object-model collections |
ComponentModel | Interface | component-model | Component-model attributes and notifications |
Diagnostics | Static | diagnostics | Diagnostics and code-analysis APIs |
Globalization | Static | globalization | Cultures, calendars, and formatting |
Numerics | Static | numerics | Vectors, matrices, BigInteger, and numeric helpers |
Runtime | Static | runtime | Runtime compatibility APIs |
Text | Static | text | Encodings, StringBuilder, and text primitives |
Text.Json | Static | text-json | JSON APIs |
Text.RegularExpressions | Interface | text-regular-expressions | Regular-expression compatibility APIs |
Threading | Static | threading | Threads, synchronization, and cancellation |
Threading.Tasks | Static | threading-tasks | Task and ValueTask APIs |
Threading.Channels | Interface | threading-channels | Channel APIs |
Timers | Static | timers | System::Timers APIs |
IO | Static | io | Streams, files, directories, and binary I/O |
IO.Compression | Static | io-compression | Compression streams; owns ZLIB |
IO.Compression.Zip | Static | io-compression-zip | ZIP APIs; owns miniz |
IO.Hashing | Static | io-hashing | Checksums and hashing |
Storage | Static | storage | Platform storage paths |
IO.IsolatedStorage | Static | io-isolated-storage | Isolated storage APIs |
Net | Static | net | Common network types |
Net.Sockets | Static | net-sockets | Socket clients and streams |
Net.Http | Static | net-http | HTTP client and content APIs |
Net.Http.Headers | Static | net-http-headers | HTTP header value types |
Net.Http.Json | Interface | net-http-json | HTTP JSON extensions |
Net.Mime | Static | net-mime | MIME content types |
Net.NetworkInformation | Static | net-network-information | Network information APIs |
Net.Security | Interface | net-security | Network-security compatibility types |
Net.WebSockets | Static | net-websockets | WebSocket client APIs |
Security | Interface | security | Security compatibility types |
Security.Cryptography | Static | security-cryptography | Hashing and cryptography compatibility APIs |
Security.Cryptography.Random | Static | security-cryptography-random | Cryptographic random-number APIs |
Xml | Static | xml | XML APIs; owns tinyxml2 |
Xml.Linq | Static | xml-linq | LINQ-to-XML APIs |
Compatibility Components
These targets preserve broad historical surfaces. New code should use a narrow component from the table above.
| Component | Meaning |
|---|---|
Core | Compatibility umbrella for Core.Base, Console, Uri, and TimeZone. |
Collections | Compatibility umbrella for all three collections components. |
Xml.XPath | Alias of the Xml component. |
All | Aggregate of every physical component, exposed as SharpRuntime::All. |
SHARP_RUNTIME | Legacy target which forwards to SharpRuntime::All only when All is selected. |
Subsystem Reference
Collections
List, Dictionary, immutable, concurrent, and object-model collections.
Numerics
Vectors, matrices, quaternion, BigInteger, and colors.
Text & Encoding
StringBuilder, encodings, JSON, XML, and regex.
Globalization
CultureInfo, calendars, and date/time formatting.
Diagnostics
Debug, trace, stopwatch, stack trace, and attributes.
Networking
Common networking, sockets, HTTP, and WebSockets.