Constant Memory (O(1))
Stream 10GB+ CSV, Excel, and JSON Lines datasets with a completely flat memory footprint. Zero-allocation Sylvan CSV and PipeReader NDJSON streaming eliminate GC pressure.
Stream CSV, Excel & JSON Lines (NDJSON) straight into PostgreSQL, SQL Server, MongoDB, Cosmos, and Elasticsearch with zero memory bloat and built-in validation.
Ingesting millions of records shouldn't cause OutOfMemoryException or choke your database connection pool. FastIngest streams records chunk-by-chunk directly into native bulk protocols.
using FastIngest.Core.Pipeline;
using FastIngest.PostgreSql.Extensions;
using Npgsql;
await using var stream = File.OpenRead("transactions_10m.csv");
await using var conn = new NpgsqlConnection(connectionString);
await conn.OpenAsync();
var result = await FastIngestPipeline<TransactionRecord>.Create()
.FromStream(stream, FileType.Csv)
.WithMapping(map =>
{
map.Map(x => x.Id, "transaction_id");
map.Map(x => x.AccountId, "account_id");
map.Map(x => x.Amount, "amount");
map.Map(x => x.Timestamp, "created_at");
})
.ValidateWith<TransactionValidator>()
.WithBatchSize(10_000)
.WithChannelCapacity(2)
.WriteToPostgresAsync(conn, "transactions");
Console.WriteLine($"Ingested {result.TotalSucceeded:N0} rows in {result.Duration.TotalSeconds:F1}s!");FastIngest natively integrates with ASP.NET Core, allowing you to easily stand up a high-performance ingestion API with background workers and real-time SignalR telemetry:
using FastIngest.AspNetCore.Extensions;
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddFastIngestAspNetCore(ingest => {
ingest.AddPostgreSqlSink("...");
ingest.RegisterProfilesFromAssemblyContaining<Program>();
});
var app = builder.Build();
app.MapFastIngestHub("/hubs/fastingest"); // SignalR Progress Telemetry
app.MapFastIngestUpload<TransactionRecord>("/api/transactions/upload"); // 202 Accepted
app.Run();| Database / Sink | Protocol / Engine | Typical Throughput | Memory Footprint |
|---|---|---|---|
| PostgreSQL | Native Binary COPY FROM STDIN | 180,000+ rows/sec | Constant (~22 MB) |
| SQL Server / Azure SQL | Streaming SqlBulkCopy + BatchDataReader | 140,000+ rows/sec | Constant (~26 MB) |
| MySQL / MariaDB | MySqlBulkCopy Local Infile / Batched Insert | 110,000+ rows/sec | Constant (~24 MB) |
| SQLite | Parameterized Batch Loop + WAL Mode | 95,000+ rows/sec | Constant (~18 MB) |
| MongoDB | Unordered BulkWriteAsync (InsertOneModel) | 85,000+ rows/sec | Constant (~30 MB) |
| Azure Cosmos DB | Concurrent Dispatch + AllowBulkExecution | 35,000+ docs/sec | Constant (~32 MB) |
| Elasticsearch | BulkAsync (IndexOperation) NDJSON Chunking | 65,000+ docs/sec | Constant (~35 MB) |
FastIngest provides machine-readable documentation conforming to the llms.txt standard. When asking questions in Cursor, Windsurf, Claude Code, GitHub Copilot, or ChatGPT:
/llms.txt: Fast, token-efficient index of all concepts, architecture guides, and database sinks./llms-full.txt: Comprehensive single-file documentation for instant context window ingestion.