ETLBox 3.6.0

There is a newer version of this package available.
See the version list below for details.
dotnet add package ETLBox --version 3.6.0                
NuGet\Install-Package ETLBox -Version 3.6.0                
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="ETLBox" Version="3.6.0" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add ETLBox --version 3.6.0                
#r "nuget: ETLBox, 3.6.0"                
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install ETLBox as a Cake Addin
#addin nuget:?package=ETLBox&version=3.6.0

// Install ETLBox as a Cake Tool
#tool nuget:?package=ETLBox&version=3.6.0                

ETLBox - Lightweight ETL and Data Integration for .NET

ETLBox Logo

Get Started | Overview | Code Examples | Licensing | Free Trial

What is ETLBox?

ETLBox is a lightweight ETL (Extract, Transform, Load) library and data integration toolbox for .NET. It helps you create and manage data integration pipelines to extract data from different sources, transform it into the format you need, and load it into databases, APIs, or files. Whether you're migrating data, synchronizing systems, or automating workflows, ETLBox provides the components to handle these tasks efficiently.

ETLBox is a flexible alternative to traditional ETL tools like SQL Server Integration Services (SSIS) or Azure Data Factory. Unlike those tools, ETLBox does not rely on a graphical user interface, making it ideal for developers who prefer programmatic control. It supports parallel execution and real-time processing, making it a solid choice for building scalable data solutions.

Feature Overview

  • Scalable Pipelines - Handle large data volumes with bulk operations and parallel processing.
  • Flexible Connectors - Connect to SQL, NoSQL, APIs, and flat files like CSV, Excel, and JSON.
  • Streaming Support - Process real-time data streams and keep workflows updated.
  • Transformations - Harmonize, filter, aggregate, and clean data with built-in tools.
  • Cloud-Ready - Deploy on Azure, AWS, Docker, and Kubernetes.
  • Custom Extensions - Build and integrate your own transformations and connectors.

Why Choose ETLBox?

ETLBox lets you build data pipelines that process structured and unstructured data from various sources, including databases, APIs, and flat files. It automates tasks like data transformation, validation, and cleaning, and supports bulk inserts, updates, and deletes. With its ability to handle streaming data and parallel workflows, ETLBox delivers performance and flexibility for modern data integration tasks. Developers can rely on built-in connectors or extend the library to fit custom requirements.

Using ETLBox

Example 1: Bulk Insert into SQL Database

string connString =
  @"Source=.;Trusted_Connection=true;Initial Catalog=ETLBox;"
var destCon = new SqlConnectionManager(connString);

//Create the dataflow components
var source = new CsvSource(sourceCon, "SourceData.csv");
var dest = new DbDestination(destCon, "DestinationTable");

//Default mapping: Csv header and column name match (case-sensitive)
//Override mapping like this:
dest.ColumnMapping = new[] {
    new DbColumnMap() {
      DbColumnName = "Id", PropertyName = "OrderNumber"
    }
};

//Link the source and destination, run the dataflow
source.LinkTo(dest);
await Network.ExecuteAsnyc(source);

Example 2: Migrate Between Databases

string mySqlConnString =
  @"Server=localhost;Database=ETLBox;Uid=user;Pwd=password;";
string postgresConnString =
  @"Server=.;Initial Catalog=ETLBox;Trusted_Connection=true;";
var sourceCon = new MySqlConnectionManager(mySqlConnString);
var destCon = new PostgresConnectionManager(postgresConnString);

//Create the dataflow components
var source = new DbSource(sourceCon, "SourceTableName");
var dest = new DbDestination(destCon, "DestTableName");

//Link the source and destination, run the dataflow
source.LinkTo(dest);
await Network.ExecuteAsync(source);

Example 3: Merge Data Between Tables

public class MyMergeRow : MergeableRow
{
    [IdColumn]
    public long Key { get; set; }
    [CompareColumn]
    [UpdateColumn]
    public string Value { get; set; }
    [DeleteColumn(true)]
    public bool DeleteThisRow { get; set; }
}

//Create the dataflow components
DbSource<MyMergeRow> source = new (connection, "SourceTable");
DbMerge<MyMergeRow> mergeDest = new (connection, "DestinationTable");
merge.MergeMode = MergeMode.Full;
merge.CacheMode = CacheMode.Partial;

//Link the source and destination, run the dataflow
source.LinkTo(merge);
Network.Execute(source);

Licensing & Support

For our full list of code examples, tutorials, licensing information, and documentation visit: www.etlbox.net

For more support and inquiries, please email us at: support@etlbox.net

Ready to build your ETL pipelines? Start now at www.etlbox.net.

Product Compatible and additional computed target framework versions.
.NET net5.0 was computed.  net5.0-windows was computed.  net6.0 was computed.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed. 
.NET Core netcoreapp2.0 was computed.  netcoreapp2.1 was computed.  netcoreapp2.2 was computed.  netcoreapp3.0 was computed.  netcoreapp3.1 was computed. 
.NET Standard netstandard2.0 is compatible.  netstandard2.1 was computed. 
.NET Framework net461 was computed.  net462 was computed.  net463 was computed.  net47 was computed.  net471 was computed.  net472 was computed.  net48 was computed.  net481 was computed. 
MonoAndroid monoandroid was computed. 
MonoMac monomac was computed. 
MonoTouch monotouch was computed. 
Tizen tizen40 was computed.  tizen60 was computed. 
Xamarin.iOS xamarinios was computed. 
Xamarin.Mac xamarinmac was computed. 
Xamarin.TVOS xamarintvos was computed. 
Xamarin.WatchOS xamarinwatchos was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (32)

Showing the top 5 NuGet packages that depend on ETLBox:

Package Downloads
ETLBox.SqlServer

This is the SQL Server connector for ETLBox. It enables integration with Microsoft SQL Server for handling structured data in ETL workflows. ETLBox is a lightweight ETL (Extract, Transform, Load) library and data integration toolbox for .NET. # Build Scalable Data Pipelines for SQL, NoSQL, APIs, and Flat Files # Automate Data Transformation, Validation, and Cleaning # Ideal for Data Warehousing, Migration, and Synchronization Simplify Data Integration and Automation: ETLBox provides source and destination components to read and write data from databases, APIs, and file formats like CSV, Excel, and JSON. Transformations let you harmonize, filter, aggregate, validate, and clean your data in parallel workflows. Key Features: * Supports streaming data pipelines for real-time processing * Parallel data flow processing for faster ETL pipelines * Extensive set of built-in connectors with support for custom extensions For tutorials, examples, and documentation visit: https://www.etlbox.net

ETLBox.Json

This is the JSON connector for ETLBox. It lets you handle structured and semi-structured JSON data, whether working with files or APIs. ETLBox is a lightweight ETL (Extract, Transform, Load) library and data integration toolbox for .NET. # Build Scalable Data Pipelines for SQL, NoSQL, APIs, and Flat Files # Automate Data Transformation, Validation, and Cleaning # Ideal for Data Warehousing, Migration, and Synchronization Simplify Data Integration and Automation: ETLBox provides source and destination components to read and write data from databases, APIs, and file formats like CSV, Excel, and JSON. Transformations let you harmonize, filter, aggregate, validate, and clean your data in parallel workflows. Key Features: * Supports streaming data pipelines for real-time processing * Parallel data flow processing for faster ETL pipelines * Extensive set of built-in connectors with support for custom extensions For tutorials, examples, and documentation visit: https://www.etlbox.net

ETLBox.Postgres

This is the PostgreSQL connector for ETLBox. It supports reading from and writing to PostgreSQL databases for scalable data pipelines. ETLBox is a lightweight ETL (Extract, Transform, Load) library and data integration toolbox for .NET. # Build Scalable Data Pipelines for SQL, NoSQL, APIs, and Flat Files # Automate Data Transformation, Validation, and Cleaning # Ideal for Data Warehousing, Migration, and Synchronization Simplify Data Integration and Automation: ETLBox provides source and destination components to read and write data from databases, APIs, and file formats like CSV, Excel, and JSON. Transformations let you harmonize, filter, aggregate, validate, and clean your data in parallel workflows. Key Features: * Supports streaming data pipelines for real-time processing * Parallel data flow processing for faster ETL pipelines * Extensive set of built-in connectors with support for custom extensions For tutorials, examples, and documentation visit: https://www.etlbox.net

ETLBox.Csv

This is the CSV connector for ETLBox. It helps you read and write data in CSV format, making it easy to handle flat-file data for import, export, and transformations. ETLBox is a lightweight ETL (Extract, Transform, Load) library and data integration toolbox for .NET. # Build Scalable Data Pipelines for SQL, NoSQL, APIs, and Flat Files # Automate Data Transformation, Validation, and Cleaning # Ideal for Data Warehousing, Migration, and Synchronization Simplify Data Integration and Automation: ETLBox provides source and destination components to read and write data from databases, APIs, and file formats like CSV, Excel, and JSON. Transformations let you harmonize, filter, aggregate, validate, and clean your data in parallel workflows. Key Features: * Supports streaming data pipelines for real-time processing * Parallel data flow processing for faster ETL pipelines * Extensive set of built-in connectors with support for custom extensions For tutorials, examples, and documentation visit: https://www.etlbox.net

ETLBox.MySql

This is the MySQL connector for ETLBox. It lets you connect to MySQL databases, handling relational data for ETL tasks and integrations. ETLBox is a lightweight ETL (Extract, Transform, Load) library and data integration toolbox for .NET. # Build Scalable Data Pipelines for SQL, NoSQL, APIs, and Flat Files # Automate Data Transformation, Validation, and Cleaning # Ideal for Data Warehousing, Migration, and Synchronization Simplify Data Integration and Automation: ETLBox provides source and destination components to read and write data from databases, APIs, and file formats like CSV, Excel, and JSON. Transformations let you harmonize, filter, aggregate, validate, and clean your data in parallel workflows. Key Features: * Supports streaming data pipelines for real-time processing * Parallel data flow processing for faster ETL pipelines * Extensive set of built-in connectors with support for custom extensions For tutorials, examples, and documentation visit: https://www.etlbox.net

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
3.6.1 2,393 1/6/2025
3.6.0 742 1/6/2025
3.5.2 3,649 12/20/2024
3.5.2-beta 77 12/10/2024
3.5.2-alpha 73 12/3/2024
3.5.1 885 11/15/2024
3.5.0 1,596 10/14/2024
3.4.4 846 9/30/2024
3.4.3 1,164 9/12/2024
3.4.2 1,063 9/3/2024
3.4.1 1,622 7/15/2024
3.4.0 2,686 5/29/2024
3.3.0 3,650 3/14/2024
3.2.0 10,506 1/11/2024
3.1.0 6,137 11/24/2023
3.0.2 13,214 10/6/2023
3.0.1 2,355 9/27/2023
3.0.0 6,264 7/11/2023
2.7.1 2,502 6/5/2023
2.7.0 5,112 4/4/2023
2.6.8 6,646 2/9/2023
2.6.7 4,668 1/9/2023
2.6.6 8,215 10/28/2022
2.6.5 6,964 10/19/2022
2.6.4 7,048 10/10/2022
2.6.3 7,105 9/26/2022
2.6.2 7,151 7/8/2022
2.6.1 7,599 5/19/2022
2.6.0 7,435 3/22/2022
2.5.2 7,265 12/30/2021
2.5.1 4,560 10/8/2021
2.5.0 8,241 9/27/2021
2.4.4 5,505 8/4/2021
2.4.3 4,278 7/16/2021
2.4.2 4,302 7/2/2021
2.4.1 9,364 5/17/2021
2.4.0 4,119 4/13/2021
2.3.2 1,734 3/2/2021
2.3.1 4,157 2/16/2021
2.3.0 5,345 1/11/2021
2.2.5 4,381 12/21/2020
2.2.4 3,682 12/15/2020
2.2.3 3,994 12/4/2020
2.2.1 1,579 11/23/2020
2.2.0 4,457 11/17/2020
2.1.4-beta 1,269 10/28/2020
2.1.4-alpha 774 10/24/2020
2.1.3 1,725 10/23/2020
2.1.2 5,481 9/24/2020
2.1.1 1,716 9/3/2020
2.1.0 3,884 9/3/2020
2.0.7 1,108 8/13/2020
2.0.6 1,170 8/13/2020
2.0.5 1,807 7/14/2020
2.0.4 1,603 7/9/2020
2.0.3 1,530 7/1/2020
2.0.2 3,946 7/1/2020
2.0.1 3,650 6/19/2020
2.0.0 3,209 6/10/2020
1.8.9 1,411 6/10/2020
1.8.8 1,240 5/27/2020
1.8.8-beta 838 5/24/2020
1.8.8-alpha 881 5/18/2020
1.8.7 16,991 5/12/2020
1.8.7-alpha 792 4/22/2020
1.8.6 3,752 4/21/2020
1.8.5 2,250 4/9/2020
1.8.4 1,104 4/6/2020
1.8.3 2,843 3/24/2020
1.8.2 1,367 3/9/2020
1.8.2-alpha 942 2/28/2020
1.8.1 2,621 2/27/2020
1.8.0 2,303 2/22/2020
1.8.0-rc2 944 2/15/2020
1.8.0-rc1 798 2/14/2020
1.8.0-beta 787 2/10/2020
1.8.0-alpha 876 2/4/2020
1.7.7 1,463 1/29/2020
1.7.6 1,274 1/15/2020
1.7.5 1,257 1/5/2020
1.7.5-alpha 830 1/3/2020
1.7.4 1,169 1/2/2020
1.7.4-alpha 798 12/31/2019
1.7.3 1,136 12/26/2019
1.7.2 1,141 12/16/2019
1.7.1 1,673 11/30/2019
1.7.0 971 11/25/2019
1.6.5 1,056 11/22/2019
1.6.4 1,017 11/17/2019
1.6.3 1,638 11/8/2019
1.6.2 1,042 11/4/2019
1.6.2-alpha 827 10/22/2019
1.6.1 1,378 10/18/2019
1.6.0 1,045 10/7/2019
1.5.0 1,121 9/13/2019
1.4.2 1,032 8/30/2019
1.4.1 953 8/27/2019
1.4.0 969 8/8/2019
1.3.2 944 8/5/2019
1.3.1 1,078 6/26/2019
1.3.0 1,053 6/6/2019
1.2.3 997 6/5/2019
1.2.2 1,101 5/24/2019
1.2.1 1,039 4/22/2019
1.2.0 1,094 4/13/2019
1.1.2 1,127 3/28/2019
1.1.1 1,434 2/2/2019
1.1.0 1,127 1/28/2019
1.1.0-beta 962 1/14/2019
1.0.1 1,221 12/20/2018
1.0.0 1,136 12/17/2018
0.1.1 1,257 12/10/2018

We are constantly improving ETLBox—adding new features, fixing bugs, and enhancing performance to make data integration even easier.

           For the latest updates and detailed release notes, visit: https://www.etlbox.net/release-notes/