Skip to content

FreeDataStore Tools

Browser-based data tools powered by DuckDB-WASM. Your data never leaves your machine.

Available Tools

Tool Status Description Link
Data Profiler Live Drop a file, get instant stats, distributions, data quality Open
Data Cleaner Live Remove duplicates, fix nulls, trim, cast, rename
Schema Validator Live Define rules, validate any dataset
Format Converter Live CSV ↔ JSON ↔ Parquet ↔ SQL
Dataset Explorer Live SQL-powered visual exploration

Technology

All tools share the @freedatastore/sdk which wraps:

  • DuckDB-WASM — Full SQL engine running in the browser via WebAssembly
  • Apache Arrow — Columnar in-memory format for zero-copy data handling
  • WebWorkers — Heavy processing off the main thread

SDK API

import { loadFile, profile, clean, validate, exportTable, query } from '@freedatastore/sdk';

// Load any file into DuckDB
const { table, rows, columns } = await loadFile(file);

// Profile — stats, distributions, nulls, duplicates
const report = await profile(table);

// Clean — apply rules
const results = await clean(table, [
  { type: 'drop_duplicates' },
  { type: 'trim_whitespace' },
  { type: 'drop_nulls', columns: ['email'] },
]);

// Validate — check against schema
const validation = await validate(table, {
  columns: [
    { name: 'email', required: true, pattern: '^[^@]+@[^@]+$' },
    { name: 'age', min: 0, max: 150 },
  ],
});

// Export
const blob = await exportTable(table, 'parquet');

// Raw SQL
const rows = await query('SELECT * FROM data WHERE age > 30 ORDER BY name');

Contributing a tool

See the Contributing Guide for how to build and publish a new data tool.