Skip to content

Latest commit

 

History

History
86 lines (75 loc) · 9.47 KB

ComponentCatalog.md

File metadata and controls

86 lines (75 loc) · 9.47 KB

Generated Sharp Runtime component catalogue

This file is generated from the CMake component registrations. Run python3 scripts/generate_component_catalog.py after changing module metadata, or use --check to verify that the committed catalogue is current.

The graph contains 44 physical modules and 109 direct production dependency edges.

For each row, the component name and representative public header form a minimal consumer example using the template below:

set(SHARP_RUNTIME_COMPONENTS <Component>)
set(SHARP_RUNTIME_BUILD_TESTS OFF CACHE BOOL "" FORCE)
add_subdirectory(sharp-runtime)
target_link_libraries(MyApp PRIVATE SharpRuntime::<Component>)

The corresponding source includes the row's representative header. Consumers request only public dependencies; private and test-only dependencies are shown for maintainers and are not part of the consumer include surface.

Physical components

Component Owner Kind Public dependencies Private dependencies Test-only dependencies External/platform dependency Representative public header
Core.Base modules/core static — — Collections.Core, Globalization, IO, Runtime, Text, Threading, Threading.Tasks, TimeZone, Uri — SharpRuntime/Experimental/Property.hpp
Console modules/console static Core.Base — — — System/Console.hpp
Uri modules/uri static Core.Base — — — System/Uri.hpp
TimeZone modules/time-zone static Core.Base — — — System/InvalidTimeZoneException.hpp
Buffers modules/buffers interface Core.Base — — — System/Buffers/ArrayBufferWriter.hpp
Collections.Core modules/collections interface Core.Base — IO, Text — System/Collections/ArrayList.hpp
Collections.Blocking modules/collections-blocking interface Collections.Core, Core.Base, Threading — — — System/Collections/Concurrent/BlockingCollection.hpp
Collections.Async modules/collections-async interface Threading — — — System/Collections/Generic/IAsyncEnumerable.hpp
Collections.ObjectModel modules/collections-object-model interface Collections.Core, ComponentModel, Core.Base — — — System/Collections/ObjectModel/ObservableCollection.hpp
ComponentModel modules/component-model static Collections.Core, Core.Base, Globalization, Uri — — — System/ComponentModel/AsyncCompletedEventArgs.hpp
Diagnostics modules/diagnostics static Core.Base — — — System/Diagnostics/CodeAnalysis/CodeAnalysisAttributes.hpp
Globalization modules/globalization static Core.Base — — — System/Globalization/Calendar.hpp
Resources modules/resources static Globalization Core.Base — — System/Resources/ResourceManager.hpp
Numerics modules/numerics static Buffers, Collections.Core, Core.Base — — — System/Numerics/BigInteger.hpp
Runtime modules/runtime static Collections.Core, Core.Base — — — System/Runtime/AmbiguousImplementationException.hpp
Text modules/text static Buffers, Core.Base — — — System/Text/ASCIIEncoding.hpp
Text.Json modules/text-json static Collections.Core, Core.Base, Text — Collections.Core — System/Text/Json/JsonCommentHandling.hpp
Text.RegularExpressions modules/text-regular-expressions interface Core.Base — — — System/Text/RegularExpressions/Capture.hpp
Threading modules/threading static Core.Base, TimeZone — — — System/AsyncCallback.hpp
Threading.Tasks modules/threading-tasks static Core.Base, Threading — — — System/IAsyncDisposable.hpp
Threading.Channels modules/threading-channels interface Core.Base, Threading.Tasks — — — System/Threading/Channels/BoundedChannelFullMode.hpp
Timers modules/timers static ComponentModel, Core.Base Threading — — System/Timers/ElapsedEventArgs.hpp
IO modules/io static Core.Base, Uri TimeZone IO.IsolatedStorage, TimeZone — System/BinaryData.hpp
IO.Compression modules/io-compression static Buffers, Core.Base, IO — — ZLIB (private) System/IO/Compression/CompressionArgumentValidation.hpp
IO.Compression.Zip modules/io-compression-zip static IO Core.Base — vendored miniz (private) System/IO/Compression/CompressionLevel.hpp
IO.Hashing modules/io-hashing static Core.Base, IO — — — System/IO/Hashing/Adler32.hpp
Storage modules/storage static — — — parent-provided SDL3 on Android (private) SharpRuntime/Storage/StoragePaths.hpp
IO.IsolatedStorage modules/io-isolated-storage static Core.Base, IO Storage — — System/IO/IsolatedStorage/IsolatedStorage.hpp
Net modules/net static Collections.Core, ComponentModel, Core.Base, Uri TimeZone — ws2_32 on Windows (private) System/Net/Cookie.hpp
Net.Sockets modules/net-sockets static Core.Base, IO, Net, Threading.Tasks — — — System/Net/Sockets/IPPacketInformation.hpp
Net.Http modules/net-http static Core.Base, IO, Net, Text, Threading, Threading.Tasks Uri Net.Sockets — System/Net/Http/ByteArrayContent.hpp
Net.Http.Headers modules/net-http-headers static Collections.Core, Core.Base, Uri Net — — System/Net/Http/Headers/AuthenticationHeaderValue.hpp
Net.Http.Json modules/net-http-json interface Core.Base, Net.Http, Text.Json, Threading.Tasks — Net.Sockets — System/Net/Http/Json/HttpClientJsonExtensions.hpp
Net.Mime modules/net-mime static Collections.Core, Core.Base — — — System/Net/Mime/ContentType.hpp
Net.NetworkInformation modules/net-network-information static ComponentModel, Core.Base, Net, Threading.Tasks — — — System/Net/NetworkInformation/IPStatus.hpp
Net.Security modules/net-security interface Core.Base — — — System/Net/Security/AuthenticationLevel.hpp
Net.WebSockets modules/net-websockets static ComponentModel, Core.Base, Net, Net.Sockets, Threading, Threading.Tasks, Uri Security.Cryptography.Random — — System/Net/WebSockets/ClientWebSocket.hpp
Security modules/security interface Core.Base — — — System/Security/Authentication/AuthenticationException.hpp
Security.Cryptography modules/security-cryptography static Core.Base — — — System/Security/Cryptography/AuthenticationTagMismatchException.hpp
Security.Cryptography.Random modules/security-cryptography-random static Core.Base — — bcrypt on Windows (private) System/Security/Cryptography/RNGCryptoServiceProvider.hpp
Xml modules/xml static Core.Base, Uri Diagnostics, TimeZone TimeZone, Xml.Linq vendored tinyxml2 (public) System/Xml/ConformanceLevel.hpp
Xml.Linq modules/xml-linq static Core.Base, Xml — — — System/Xml/Linq/Extensions.hpp
Xml.Serialization modules/xml-serialization interface Collections.Core, Core.Base, IO, Xml — — — System/Xml/Serialization/IXmlSerializable.hpp
ServiceModel modules/service-model static Core.Base, Uri, Xml Net.Http Net.Http, Net.Sockets — System/ServiceModel/BasicHttpBinding.hpp

Compatibility components

Compatibility components preserve broad historical surfaces. New code should prefer the narrow physical component from the table above.

Component Owner Kind Direct dependencies Representative public header
Core modules/core compatibility umbrella Console, Core.Base, TimeZone, Uri SharpRuntime/Experimental/Property.hpp
Collections modules/collections compatibility umbrella Collections.Async, Collections.Blocking, Collections.Core, Collections.ObjectModel System/Collections/ArrayList.hpp
Xml.XPath modules/xml alias of Xml Xml System/Xml/ConformanceLevel.hpp
All CMake aggregate 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, Resources, Runtime, Security, Security.Cryptography, Security.Cryptography.Random, ServiceModel, Storage, Text, Text.Json, Text.RegularExpressions, Threading, Threading.Channels, Threading.Tasks, TimeZone, Timers, Uri, Xml, Xml.Linq, Xml.Serialization SharpRuntime/Experimental/Property.hpp