44 < meta charset ="utf-8 ">
55 < meta name ="viewport " content ="width=device-width, initial-scale=1.0 ">
66 < title > Dataplat.Dbatools.Csv - High-Performance CSV for .NET</ title >
7- < meta name ="description " content ="High-performance CSV reader and writer for .NET. 6x faster with 40x less memory than LumenWorks. Streaming IDataReader, compression support, and parallel processing . ">
7+ < meta name ="description " content ="High-performance CSV reader and writer for .NET built for database workflows. Native IDataReader for SqlBulkCopy, built-in compression, progress reporting. Up to 6x faster than LumenWorks for database imports . ">
88 < meta name ="keywords " content ="csv, parser, .net, nuget, datareader, sqlbulkcopy, dbatools, high-performance ">
99
1010 <!-- Open Graph -->
1111 < meta property ="og:title " content ="Dataplat.Dbatools.Csv ">
12- < meta property ="og:description " content ="High-performance CSV reader and writer for .NET. 6x faster with 40x less memory than LumenWorks . ">
12+ < meta property ="og:description " content ="High-performance CSV reader and writer for .NET. Native IDataReader, built-in compression, and database-first design . ">
1313 < meta property ="og:type " content ="website ">
1414 < meta property ="og:url " content ="https://dataplat.dbatools.io/csv ">
1515 < meta property ="og:image " content ="https://dataplat.dbatools.io/csv-social.png ">
803803 < a href ="#features "> Features</ a >
804804 < a href ="#examples "> Examples</ a >
805805 < a href ="#performance "> Performance</ a >
806- < a href ="https://github.com/dataplat/dbatools.library " target ="_blank "> GitHub</ a >
806+ < a href ="https://github.com/dataplat/dbatools.library/tree/main/project/Dataplat.Dbatools.Csv " target ="_blank "> GitHub</ a >
807807 < a href ="https://www.nuget.org/packages/Dataplat.Dbatools.Csv " target ="_blank " class ="nav-cta ">
808808 < i class ="fa-solid fa-download "> </ i > Install
809809 </ a >
815815 < section class ="hero ">
816816 < div class ="badge ">
817817 < span class ="badge-dot "> </ span >
818- < span > v1.0.2 Released</ span >
818+ < span > v1.1.0 Released</ span >
819819 </ div >
820820
821821 < h1 >
822- < span class ="gradient-text "> 6x Faster </ span > CSV< br >
823- for .NET & PowerShell
822+ < span class ="gradient-text "> High-Performance </ span > CSV< br >
823+ for Database Professionals
824824 </ h1 >
825825
826826 < p >
827- A blazing-fast CSV reader and writer with 40x less memory usage.
828- Streaming IDataReader, compression support , and parallel processing . From the trusted dbatools project.
827+ The CSV library built for database workflows. Native IDataReader for SqlBulkCopy,
828+ built-in compression, progress reporting , and real-world data handling . From the trusted dbatools project.
829829 </ p >
830830
831831 < div class ="hero-buttons ">
832832 < a href ="https://www.nuget.org/packages/Dataplat.Dbatools.Csv " target ="_blank " class ="btn btn-primary ">
833833 < i class ="fa-solid fa-download "> </ i >
834834 Get Started
835835 </ a >
836- < a href ="https://github.com/dataplat/dbatools.library " target ="_blank " class ="btn btn-secondary ">
836+ < a href ="https://github.com/dataplat/dbatools.library/tree/main/project/Dataplat.Dbatools.Csv " target ="_blank " class ="btn btn-secondary ">
837837 < i class ="fa-brands fa-github "> </ i >
838838 View on GitHub
839839 </ a >
@@ -850,25 +850,25 @@ <h1>
850850
851851 < div class ="stats ">
852852 < div class ="stat ">
853- < div class ="stat-value "> 6.1x </ div >
854- < div class ="stat-label "> Faster than LumenWorks </ div >
853+ < div class ="stat-value "> 6x </ div >
854+ < div class ="stat-label "> Faster for SqlBulkCopy </ div >
855855 </ div >
856856 < div class ="stat ">
857- < div class ="stat-value "> 40x </ div >
858- < div class ="stat-label "> Less memory usage </ div >
857+ < div class ="stat-value "> IDataReader </ div >
858+ < div class ="stat-label "> Native SqlBulkCopy </ div >
859859 </ div >
860860 < div class ="stat ">
861- < div class ="stat-value "> 1.8M </ div >
862- < div class ="stat-label "> Rows per second </ div >
861+ < div class ="stat-value "> 5 </ div >
862+ < div class ="stat-label "> Compression formats </ div >
863863 </ div >
864864 </ div >
865865 </ section >
866866
867867 <!-- Features Section -->
868868 < section class ="features " id ="features ">
869869 < div class ="section-header ">
870- < h2 > Built for Performance </ h2 >
871- < p > Everything you need to work with CSV files efficiently in your .NET applications </ p >
870+ < h2 > Built for Database Workflows </ h2 >
871+ < p > Everything you need to import CSV data into SQL Server and other databases </ p >
872872 </ div >
873873
874874 < div class ="features-grid ">
@@ -919,6 +919,22 @@ <h3>Culture-Aware Parsing</h3>
919919 < h3 > Robust Error Handling</ h3 >
920920 < p > Collect errors, throw on first error, or skip bad rows. Handle duplicate headers and field count mismatches gracefully.</ p >
921921 </ div >
922+
923+ < div class ="feature-card ">
924+ < div class ="feature-icon ">
925+ < i class ="fa-solid fa-chart-line "> </ i >
926+ </ div >
927+ < h3 > Progress & Cancellation</ h3 >
928+ < p > Monitor import progress with callbacks showing rows/second, percent complete, and elapsed time. Cancel long-running imports with CancellationToken.</ p >
929+ </ div >
930+
931+ < div class ="feature-card ">
932+ < div class ="feature-icon ">
933+ < i class ="fa-solid fa-database "> </ i >
934+ </ div >
935+ < h3 > Database-First Design</ h3 >
936+ < p > Built specifically for database import workflows. Culture-aware parsing, null vs empty handling, and direct integration with ADO.NET.</ p >
937+ </ div >
922938 </ div >
923939 </ section >
924940
@@ -1160,55 +1176,99 @@ <h2>Simple, Powerful API</h2>
11601176 < section class ="performance " id ="performance ">
11611177 < div class ="section-header ">
11621178 < h2 > Benchmark Results</ h2 >
1163- < p > Real-world benchmarks comparing Dataplat.Dbatools.Csv vs LumenWorks </ p >
1179+ < p > 100,000 rows × 10 columns (.NET 8, AVX-512) </ p >
11641180 </ div >
11651181
1182+ < h3 style ="color: var(--text-secondary); font-size: 1rem; margin-bottom: 1rem; margin-top: 2rem; ">
1183+ < i class ="fa-solid fa-database " style ="color: var(--accent-purple); "> </ i >
1184+ Single Column Read < span style ="color: var(--text-muted); font-weight: 400; "> (typical SqlBulkCopy/IDataReader pattern)</ span >
1185+ </ h3 >
11661186 < div class ="perf-table ">
11671187 < table >
11681188 < thead >
11691189 < tr >
1170- < th > Scenario</ th >
1171- < th > Dataplat</ th >
1172- < th > LumenWorks</ th >
1173- < th > Speed Boost</ th >
1174- < th > Memory Savings</ th >
1190+ < th > Library</ th >
1191+ < th > Time (ms)</ th >
1192+ < th > vs Dataplat</ th >
11751193 </ tr >
11761194 </ thead >
11771195 < tbody >
11781196 < tr >
1179- < td > < strong > Small</ strong > (1K rows)</ td >
1180- < td > 0.83 ms</ td >
1181- < td > 3.26 ms</ td >
1182- < td class ="perf-highlight "> 3.9x faster</ td >
1183- < td class ="perf-highlight "> 25x less</ td >
1197+ < td > < strong > Sep</ strong > </ td >
1198+ < td > 19 ms</ td >
1199+ < td > 3.8x faster</ td >
1200+ </ tr >
1201+ < tr >
1202+ < td > < strong > Sylvan</ strong > </ td >
1203+ < td > 29 ms</ td >
1204+ < td > 2.5x faster</ td >
1205+ </ tr >
1206+ < tr style ="background: var(--bg-tertiary); ">
1207+ < td > < strong > Dataplat</ strong > </ td >
1208+ < td class ="perf-highlight "> 74 ms</ td >
1209+ < td > baseline</ td >
1210+ </ tr >
1211+ < tr >
1212+ < td > < strong > CsvHelper</ strong > </ td >
1213+ < td > 76 ms</ td >
1214+ < td > ~same</ td >
11841215 </ tr >
11851216 < tr >
1186- < td > < strong > Medium</ strong > (100K rows)</ td >
1187- < td > 65.3 ms</ td >
1188- < td > 364.5 ms</ td >
1189- < td class ="perf-highlight "> 5.6x faster</ td >
1190- < td class ="perf-highlight "> 41x less</ td >
1217+ < td > < strong > LumenWorks</ strong > </ td >
1218+ < td > 433 ms</ td >
1219+ < td class ="perf-highlight "> 5.9x slower</ td >
1220+ </ tr >
1221+ </ tbody >
1222+ </ table >
1223+ </ div >
1224+
1225+ < h3 style ="color: var(--text-secondary); font-size: 1rem; margin-bottom: 1rem; margin-top: 2.5rem; ">
1226+ < i class ="fa-solid fa-table " style ="color: var(--accent-cyan); "> </ i >
1227+ All Columns Read < span style ="color: var(--text-muted); font-weight: 400; "> (full row processing)</ span >
1228+ </ h3 >
1229+ < div class ="perf-table ">
1230+ < table >
1231+ < thead >
1232+ < tr >
1233+ < th > Library</ th >
1234+ < th > Time (ms)</ th >
1235+ < th > vs Dataplat</ th >
1236+ </ tr >
1237+ </ thead >
1238+ < tbody >
1239+ < tr >
1240+ < td > < strong > Sep</ strong > </ td >
1241+ < td > 35 ms</ td >
1242+ < td > 2.1x faster</ td >
1243+ </ tr >
1244+ < tr >
1245+ < td > < strong > Sylvan</ strong > </ td >
1246+ < td > 37 ms</ td >
1247+ < td > 2.0x faster</ td >
1248+ </ tr >
1249+ < tr style ="background: var(--bg-tertiary); ">
1250+ < td > < strong > Dataplat</ strong > </ td >
1251+ < td class ="perf-highlight "> 73 ms</ td >
1252+ < td > baseline</ td >
11911253 </ tr >
11921254 < tr >
1193- < td > < strong > Large</ strong > (1M rows)</ td >
1194- < td > 559 ms</ td >
1195- < td > 3,435 ms</ td >
1196- < td class ="perf-highlight "> 6.1x faster</ td >
1197- < td class ="perf-highlight "> 40x less</ td >
1255+ < td > < strong > CsvHelper</ strong > </ td >
1256+ < td > 101 ms</ td >
1257+ < td > 1.4x slower</ td >
11981258 </ tr >
11991259 < tr >
1200- < td > < strong > Wide</ strong > (100K × 50 cols)</ td >
1201- < td > 277 ms</ td >
1202- < td > 493 ms</ td >
1203- < td class ="perf-highlight "> 1.8x faster</ td >
1204- < td class ="perf-highlight "> 7.3x less</ td >
1260+ < td > < strong > LumenWorks</ strong > </ td >
1261+ < td > 100 ms</ td >
1262+ < td > 1.4x slower</ td >
12051263 </ tr >
12061264 </ tbody >
12071265 </ table >
12081266 </ div >
12091267
12101268 < p style ="text-align: center; color: var(--text-muted); margin-top: 2rem; font-size: 0.875rem; ">
1211- Processing 1M rows (96 MB): < strong style ="color: var(--text-primary); "> 0.56s / 420 MB</ strong > vs LumenWorks < strong style ="color: var(--text-muted); "> 3.4s / 16.7 GB</ strong >
1269+ Sep and Sylvan are faster for raw parsing. Dataplat wins for < strong style ="color: var(--text-primary); "> complete database workflows</ strong > : IDataReader + compression + progress + messy data handling.
1270+ < br > < br >
1271+ < strong style ="color: var(--accent-purple); "> Why the difference?</ strong > Single column read matches how SqlBulkCopy typically accesses data—one column at a time as needed.
12121272 </ p >
12131273 </ section >
12141274
@@ -1217,39 +1277,38 @@ <h2>Benchmark Results</h2>
12171277 < div class ="comparison-container ">
12181278 < div class ="section-header ">
12191279 < h2 > Why Choose Dbatools.Csv?</ h2 >
1220- < p > A modern replacement built for today's .NET applications </ p >
1280+ < p > The right tool for database import workflows </ p >
12211281 </ div >
12221282
12231283 < div class ="comparison-grid ">
12241284 < div class ="comparison-card ">
12251285 < h3 >
1226- < i class ="fa-solid fa-clock-rotate-left "> </ i >
1227- LumenWorks CsvReader
1286+ < i class ="fa-solid fa-bolt "> </ i >
1287+ Raw Speed Libraries
12281288 </ h3 >
12291289 < ul class ="comparison-list ">
1230- < li > < i class ="fa-solid fa-check "> </ i > Basic CSV parsing</ li >
1231- < li > < i class ="fa-solid fa-check "> </ i > IDataReader support</ li >
1232- < li > < i class ="fa-solid fa-xmark "> </ i > 4KB buffer size</ li >
1233- < li > < i class ="fa-solid fa-xmark "> </ i > No multi-char delimiters</ li >
1234- < li > < i class ="fa-solid fa-xmark "> </ i > No compression support</ li >
1235- < li > < i class ="fa-solid fa-xmark "> </ i > No parallel processing</ li >
1236- < li > < i class ="fa-solid fa-xmark "> </ i > Limited maintenance</ li >
1290+ < li > < i class ="fa-solid fa-check "> </ i > Sep: Fastest raw parsing (21 GB/s)</ li >
1291+ < li > < i class ="fa-solid fa-check "> </ i > Sylvan: Very fast, IDataReader</ li >
1292+ < li > < i class ="fa-solid fa-xmark "> </ i > No built-in compression</ li >
1293+ < li > < i class ="fa-solid fa-xmark "> </ i > Minimal malformed data handling</ li >
1294+ < li > < i class ="fa-solid fa-xmark "> </ i > No progress reporting</ li >
1295+ < li > < i class ="fa-solid fa-xmark "> </ i > Requires more configuration</ li >
12371296 </ ul >
12381297 </ div >
12391298
12401299 < div class ="comparison-card highlight ">
12411300 < h3 >
1242- < i class ="fa-solid fa-rocket "> </ i >
1301+ < i class ="fa-solid fa-database "> </ i >
12431302 Dataplat.Dbatools.Csv
12441303 </ h3 >
12451304 < ul class ="comparison-list ">
1246- < li > < i class ="fa-solid fa-check "> </ i > 6x faster, 40x less memory </ li >
1247- < li > < i class ="fa-solid fa-check "> </ i > 64KB buffer size </ li >
1248- < li > < i class ="fa-solid fa-check "> </ i > Multi-char delimiters (::, ||) </ li >
1249- < li > < i class ="fa-solid fa-check "> </ i > GZip, Deflate, Brotli, ZLib </ li >
1250- < li > < i class ="fa-solid fa-check "> </ i > Parallel processing </ li >
1251- < li > < i class ="fa-solid fa-check "> </ i > String interning </ li >
1252- < li > < i class ="fa-solid fa-check "> </ i > Active maintenance </ li >
1305+ < li > < i class ="fa-solid fa-check "> </ i > Native IDataReader + SqlBulkCopy </ li >
1306+ < li > < i class ="fa-solid fa-check "> </ i > Built-in GZip, Brotli, ZLib </ li >
1307+ < li > < i class ="fa-solid fa-check "> </ i > Lenient parsing for messy data </ li >
1308+ < li > < i class ="fa-solid fa-check "> </ i > Progress reporting & cancellation </ li >
1309+ < li > < i class ="fa-solid fa-check "> </ i > Culture-aware type conversion </ li >
1310+ < li > < i class ="fa-solid fa-check "> </ i > dbatools integration </ li >
1311+ < li > < i class ="fa-solid fa-check "> </ i > 6x faster than LumenWorks (SqlBulkCopy) </ li >
12531312 </ ul >
12541313 </ div >
12551314 </ div >
@@ -1283,7 +1342,7 @@ <h2>Ready to get started?</h2>
12831342 </ div >
12841343 < div class ="footer-links ">
12851344 < a href ="https://dbatools.io " target ="_blank "> dbatools.io</ a >
1286- < a href ="https://github.com/dataplat/dbatools.library " target ="_blank "> GitHub</ a >
1345+ < a href ="https://github.com/dataplat/dbatools.library/tree/main/project/Dataplat.Dbatools.Csv " target ="_blank "> GitHub</ a >
12871346 < a href ="https://www.nuget.org/packages/Dataplat.Dbatools.Csv " target ="_blank "> NuGet</ a >
12881347 < a href ="https://dbatools.io/slack " target ="_blank "> Community</ a >
12891348 </ div >
0 commit comments