Open source · MIT · .NET Standard 2.0
The open-source ETL toolkit for .NET.
EtlKit is a lightweight ETL (extract · transform · load) library and data integration toolbox for .NET. Build your own data pipelines programmatically in C# — readable, testable, and tracked in source control like the rest of your code.
$ dotnet add package EtlKit
Code your ETL, not boilerplate.
A comprehensive C# class library that manages your whole ETL or ELT — with control-flow tasks that replace ADO.NET ceremony with one line of readable code.
Build ETL in .NET
Write pipelines in your favourite .NET language, fitting your team's skills and a mature toolset. Source, transform and destination components compose into a flow.
Runs everywhere
Written in .NET Standard 2.0 and tested on Linux, macOS and Windows with current .NET Core & .NET. Develop and debug locally on your desktop.
Made for big data
Built on Microsoft's TPL Dataflow with per-component buffers and async, in-memory processing — designed to move large volumes with high throughput.
Manage change
Track ETL logic in git, review it, and run it through your existing CI/CD. A fully functional alternative to GUI tools like SSIS.
// Read from a CSV, bump a value, write to a database table var source = new CsvSource<Row>("input.csv"); var transform = new RowTransformation<Row, Row>(row => { row.Value += 1; return row; }); var dest = new DbDestination<Row>(connection, "DestinationTable"); source.LinkTo(transform); transform.LinkTo(dest); source.Execute(); dest.Wait();
Connect to what you already use.
Source and destination components for the most common databases, queues and file types — and a CustomSource / CustomDestination for anything else.
| Category | Support for |
|---|---|
| Databases | SQL Server, Postgres, SQLite, MySQL, ClickHouse |
| Queues & streaming | Kafka (full), RabbitMQ (destination) |
| Flat files | CSV, JSON, XML |
| Office | Microsoft Access, Excel (source) |
| API | REST, OpenAI |
| Memory | .NET IEnumerable & collections |
Resources
Everything lives in the open. Browse the guides, generate the API reference, or grab a release.
Hand-written guides and tutorials, browsable directly in the repo.
API Reference ↗Generated from XML comments — the full public surface of every component.
Releases ↗Tagged versions and release notes on GitHub.
NuGet packages ↗EtlKit and its connector packages (Kafka, MongoDB, REST, and more).
Changelog ↗What changed between versions, including the 1.x → 2.0 rename mapping.
Source code ↗The full solution on GitHub — issues, pull requests, and tests.