How dotnet/extensions works
This repository is a suite of .NET libraries, not one application with a single end-to-end flow. Its users compose facilities for AI, ingestion, resilience, ASP.NET diagnostics, compliance reporting, and developer tooling. The clearest sampled runtime flow is file ingestion: a caller runs the pipeline, which reads files, applies document processors, and writes processed chunks; results and failures are yielded to the caller. Other branches reflect major README capabilities and the file tree. Wiring beyond the sampled excerpts is shown only where the README or source supports it.
Main entry points: IngestionPipeline.cs Ingestion pipeline · OpenAIRealtimeClientSession.cs OpenAI realtime · HttpStandardResiliencePipelineBuilderExtensions.cs HTTP resilience · ByAuthorityPipelineKeyProvider.cs Authority pipeline keys
Components 26
AI Libraries
- AI abstractions
src/Libraries/Microsoft.Extensions.AI.Abstractions - Embedding registration
src/Libraries/Microsoft.Extensions.AI/Embeddings/EmbeddingGeneratorBuilderServiceCollectionExtensions.cs - OpenAI realtime
src/Libraries/Microsoft.Extensions.AI.OpenAI/OpenAIRealtimeClientSession.cs
Data Ingestion
- Ingestion pipeline
src/Libraries/Microsoft.Extensions.DataIngestion/IngestionPipeline.cs - Pipeline options
src/Libraries/Microsoft.Extensions.DataIngestion/IngestionPipelineOptions.cs - Document reader
src/Libraries/Microsoft.Extensions.DataIngestion - Document processors
src/Libraries/Microsoft.Extensions.DataIngestion - Chunk writer
src/Libraries/Microsoft.Extensions.DataIngestion - Ingestion results
src/Libraries/Microsoft.Extensions.DataIngestion
Resilience
- HTTP resilience
src/Libraries/Microsoft.Extensions.Http.Resilience/Resilience/HttpStandardResiliencePipelineBuilderExtensions.cs - Authority pipeline keys
src/Libraries/Microsoft.Extensions.Http.Resilience/Resilience/Internal/ByAuthorityPipelineKeyProvider.cs
ASP.NET Diagnostics
- ASP.NET diagnostics
src/Libraries/Microsoft.AspNetCore.Diagnostics.Middleware - Header parsing
src/Libraries/Microsoft.AspNetCore.HeaderParsing - Latency capture
src/Libraries/Microsoft.AspNetCore.Diagnostics.Middleware/Latency/CapturePipelineExitMiddleware.cs
Compliance Reporting
- Compliance reports
src/Generators/Microsoft.Gen.ComplianceReports - Evaluation cache
src/Libraries/Microsoft.Extensions.AI.Evaluation.Reporting.Azure/Storage/AzureStorageResponseCache.cs - Evaluation results
src/Libraries/Microsoft.Extensions.AI.Evaluation.Reporting.Azure/Storage/AzureStorageResultStore.cs
Developer Tools
- Static analyzers
src/Analyzers - Source generators
src/Generators - API compatibility tools
eng/Tools/ApiChief - Diagnostic config tools
eng/Tools/DiagConfig
Other components
- Application developer
- OpenAI service
- Input files
- HTTP requests
- Azure Data Lake
Connections 25
- Application developer → OpenAI realtime: starts session
- OpenAI realtime → OpenAI service: sends commands
- OpenAI service → OpenAI realtime: streams updates
- Application developer → Embedding registration: registers generator
- Application developer → Ingestion pipeline: runs pipeline
- Ingestion pipeline → Input files: enumerates files
- Ingestion pipeline → Document reader: reads documents
- Ingestion pipeline → Document processors: processes documents
- Ingestion pipeline → Chunk writer: writes chunks
- Ingestion pipeline → Ingestion results: yields results
- Application developer → HTTP resilience: configures pipelines
- HTTP resilience → Authority pipeline keys: selects keys
- Authority pipeline keys → HTTP requests: keys by authority
- Application developer → ASP.NET diagnostics: configures middleware
- Application developer → Header parsing: configures parsing
- Latency capture → ASP.NET diagnostics: records checkpoints
- Application developer → Compliance reports: uses compliance tools
- Application developer → Evaluation cache: caches evaluations
- Application developer → Evaluation results: stores results
- Evaluation cache → Azure Data Lake: reads and writes
- Evaluation results → Azure Data Lake: reads and writes
- Application developer → Static analyzers: uses analyzers
- Application developer → Source generators: uses generators
- Application developer → API compatibility tools: checks API changes
- Application developer → Diagnostic config tools: manages diagnostics