Flowthru.Extensions.Http
0.26.0-preview.112
dotnet add package Flowthru.Extensions.Http --version 0.26.0-preview.112
NuGet\Install-Package Flowthru.Extensions.Http -Version 0.26.0-preview.112
<PackageReference Include="Flowthru.Extensions.Http" Version="0.26.0-preview.112" />
<PackageVersion Include="Flowthru.Extensions.Http" Version="0.26.0-preview.112" />
<PackageReference Include="Flowthru.Extensions.Http" />
paket add Flowthru.Extensions.Http --version 0.26.0-preview.112
#r "nuget: Flowthru.Extensions.Http, 0.26.0-preview.112"
#:package Flowthru.Extensions.Http@0.26.0-preview.112
#addin nuget:?package=Flowthru.Extensions.Http&version=0.26.0-preview.112&prerelease
#tool nuget:?package=Flowthru.Extensions.Http&version=0.26.0-preview.112&prerelease
Flowthru.Extensions.Http
Read Flowthru Catalog Items from http:// and https:// URLs. This package registers an
IStorageMediumProvider for the HTTP(S) schemes, so any format extension (Csv, Parquet,
Json, Xml, …) can read from a remote endpoint with no change — a Flow targets HTTP by writing a
https://… URL where a path is accepted, and the typed mapping to your schema happens exactly as
it would for a local file.
Mental model
Storage in Flowthru is three independent axes: format (how bytes serialize) × medium
(where bytes live) × container (the in-memory shape). This package adds one medium — an HTTP
endpoint. It does not know about CSV or Parquet, and they do not know about HTTP; they meet
through the medium resolver. Bring your mental model of fetching a file over the web: a GET
returns bytes, an optional User-Agent, a timeout, and conditional-GET caching so a large file
isn't re-downloaded on every run. An HTTP-backed Item is a remote read source.
Install
dotnet add package Flowthru.Extensions.Http
Register the medium, then target HTTP by writing an https:// URL anywhere a path is accepted:
services.AddFlowthru(b =>
{
b.UseHttp(); // bound from the Flowthru:Http config section
b.RegisterCatalog(sp => new Catalog(
basePath, sp.GetRequiredService<IStorageMediumResolver>()));
});
// In the Catalog — the resolver routes the https:// URI through the HTTP medium:
public IItem<IEnumerable<RetailTransactionSchema>> RetailTransactionsRaw =>
CreateItem(() => Item.Of<IEnumerable<RetailTransactionSchema>>("RetailTransactionsRaw")
.Csv()
.AtPath("https://example.com/data/online-retail-dataset.csv")
.Build());
Bare paths and file:// still resolve to the local filesystem; only http:///https:// route
here.
Configuration
Bound from the Flowthru:Http section, or overridden code-first via UseHttp(http => …).
On-disk conditional-GET caching avoids re-downloading an unchanged file on every run:
b.UseHttp(http =>
{
http.Timeout = TimeSpan.FromMinutes(15);
http.UserAgent = "MyOrg-Pipeline/2.0";
http.Cache = new HttpCacheOptions
{
Directory = "/var/cache/flowthru",
MaxAge = TimeSpan.FromHours(24),
};
});
MaxConcurrentRequestsPerHost is the opt-in cap for throttling a rate-limited endpoint; HTTP
reads are parallel-safe and unbounded by default.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- Flowthru.Core (>= 0.26.0-preview.112)
- Microsoft.Extensions.Configuration (>= 10.0.4)
- Microsoft.Extensions.Configuration.Abstractions (>= 10.0.4)
- Microsoft.Extensions.Configuration.Binder (>= 10.0.4)
- Microsoft.Extensions.DependencyInjection (>= 10.0.4)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.4)
- Microsoft.Extensions.Logging.Abstractions (>= 10.0.4)
- Microsoft.Extensions.Options (>= 10.0.4)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 0.26.0-preview.112 | 50 | 6/5/2026 |
| 0.25.0 | 101 | 6/2/2026 |
| 0.25.0-preview.110 | 49 | 6/2/2026 |
| 0.24.0-preview.108 | 47 | 6/2/2026 |
| 0.21.0 | 98 | 5/24/2026 |
| 0.21.0-preview.101 | 48 | 5/24/2026 |
| 0.20.0 | 93 | 5/23/2026 |
| 0.20.0-preview.100 | 48 | 5/23/2026 |
| 0.19.0-preview.99 | 52 | 5/23/2026 |
| 0.18.5-preview.98 | 64 | 5/22/2026 |
| 0.18.4-preview.97 | 50 | 5/22/2026 |
| 0.18.3 | 97 | 5/20/2026 |
| 0.18.3-preview.95 | 53 | 5/19/2026 |
| 0.18.2 | 93 | 5/18/2026 |
| 0.18.2-preview.93 | 51 | 5/18/2026 |
| 0.18.1 | 91 | 5/15/2026 |
| 0.18.1-preview.92 | 49 | 5/14/2026 |
| 0.18.0-preview.91 | 44 | 5/14/2026 |
| 0.17.5 | 82 | 5/13/2026 |