Skip to content

Commit dcca1bc

Browse files
Revamp CSV library marketing for database workflows
Updated csv.html and csv-social.html to emphasize database-first features, native IDataReader support, and progress reporting. Revised performance benchmarks, feature highlights, and comparison sections to target database professionals and clarify advantages over raw parsing libraries. Updated links and version references to reflect latest release.
1 parent 4890f18 commit dcca1bc

File tree

2 files changed

+128
-69
lines changed

2 files changed

+128
-69
lines changed

csv-social.html

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -260,19 +260,19 @@
260260
<div class="content">
261261
<div class="headline">
262262
<h1>
263-
<span class="gradient-text">6x Faster</span> <span class="white-text">CSV</span>
263+
<span class="gradient-text">High-Performance</span> <span class="white-text">CSV</span>
264264
</h1>
265-
<h2>for .NET & PowerShell</h2>
265+
<h2>for Database Professionals</h2>
266266
</div>
267267

268268
<div class="badge">
269-
<span>40x less memory</span>
270-
<span class="dot"></span>
271-
<span>Streaming</span>
269+
<span>IDataReader</span>
272270
<span class="dot"></span>
273271
<span>Compression</span>
274272
<span class="dot"></span>
275-
<span>Parallel</span>
273+
<span>Progress</span>
274+
<span class="dot"></span>
275+
<span>6x Faster</span>
276276
</div>
277277
</div>
278278

csv.html

Lines changed: 122 additions & 63 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,12 @@
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">
@@ -803,7 +803,7 @@
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>
@@ -815,25 +815,25 @@
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

Comments
 (0)