Convert TOML to TSV

Drag and drop files here or click to select.
Max file size 100mb.
Uploading progress:

TOML vs TSV Format Comparison

Aspect TOML (Source Format) TSV (Target Format)
Format Overview
TOML
Tom's Obvious Minimal Language

A minimal configuration file format created by Tom Preston-Werner in 2013. Designed to be easy to read with obvious semantics. Maps unambiguously to a hash table and supports typed values including strings, integers, floats, booleans, dates, arrays, and tables.

Configuration Format Formally Specified
TSV
Tab-Separated Values

A simple tabular data format where columns are separated by tab characters and rows by newlines. Widely used for data interchange between spreadsheets, databases, and scientific tools. Simpler than CSV as tabs rarely appear in data, reducing the need for quoting.

Tabular Data Universal Format
Technical Specifications
Structure: Key-value pairs with tables and arrays
Encoding: UTF-8 required
Format: Plain text with minimal syntax
Type System: Strings, integers, floats, booleans, dates, arrays, tables
Extensions: .toml
Structure: Rows and columns (flat tabular)
Encoding: UTF-8, ASCII, or platform-dependent
Delimiter: Tab character (\t, 0x09)
Row Separator: Newline (\n or \r\n)
Extensions: .tsv, .tab
Syntax Examples

TOML configuration syntax:

[database]
host = "db.example.com"
port = 5432
name = "analytics"
ssl = true

[database.pool]
min_size = 5
max_size = 20

TSV tabular data format:

Section	Key	Value	Type
database	host	db.example.com	string
database	port	5432	integer
database	name	analytics	string
database	ssl	true	boolean
database.pool	min_size	5	integer
database.pool	max_size	20	integer
Content Support
  • String values (basic and literal)
  • Integer and float numbers
  • Boolean values
  • Date and time values (RFC 3339)
  • Arrays (typed)
  • Tables and inline tables
  • Array of tables
  • Comments
  • Plain text values in columns
  • Numeric data (no typing)
  • Header row (optional)
  • Unlimited rows and columns
  • No quoting needed (usually)
  • No nesting capability
  • No comments
Advantages
  • Extremely readable syntax
  • Formally specified (TOML v1.0)
  • Strong typing system
  • Native date/time support
  • Unambiguous parsing
  • Growing ecosystem adoption
  • Extremely simple format
  • Universal spreadsheet compatibility
  • Easy to parse programmatically
  • No quoting ambiguity (unlike CSV)
  • Works with any text editor
  • Excellent for data pipelines
Disadvantages
  • Limited to configuration data
  • Verbose for deeply nested structures
  • Smaller ecosystem than JSON/YAML
  • No schema validation built-in
  • Not suited for document content
  • Flat structure only (no nesting)
  • No data type information
  • No metadata or schema support
  • Tab characters in data cause issues
  • No standardized specification
Common Uses
  • Rust project configuration (Cargo.toml)
  • Python project metadata (pyproject.toml)
  • Hugo static site configuration
  • Netlify deployment settings
  • Application configuration files
  • Spreadsheet data exchange
  • Database import/export
  • Scientific data analysis
  • Bioinformatics data formats
  • Command-line data processing
  • Clipboard paste into Excel
Best For
  • Application configuration
  • Project metadata
  • Build system settings
  • Deployment configuration
  • Spreadsheet data interchange
  • Quick data analysis
  • Database bulk operations
  • Scientific data exchange
Version History
Introduced: 2013 (Tom Preston-Werner)
Current Version: TOML v1.0.0 (2021)
Status: Stable, formally specified
Evolution: Reached 1.0 stability milestone
Introduced: Early computing era
Standard: IANA registered (text/tab-separated-values)
Status: Stable, universally supported
Evolution: Minimal changes, enduring format
Software Support
Rust: toml crate (native)
Python: tomllib (stdlib 3.11+), tomli
JavaScript: @iarna/toml, toml-js
Other: Go, Java, C#, Ruby libraries
Excel: Native open/save support
Google Sheets: Full import/export
LibreOffice Calc: Full support
Other: All spreadsheets, pandas, R, awk

Why Convert TOML to TSV?

Converting TOML configuration files to TSV format is valuable when you need to analyze, compare, or audit configuration data using spreadsheet tools. TSV's tabular structure makes it easy to open configuration values directly in Excel, Google Sheets, or LibreOffice Calc, where you can sort, filter, and compare settings across different environments or versions using familiar spreadsheet operations.

TOML files store hierarchical configuration data with typed values, but this nested structure can be difficult to analyze at scale. By flattening TOML into TSV rows with columns for section, key, value, and type, you gain the ability to perform bulk operations on configuration data. This is especially useful for DevOps teams managing configuration across multiple environments (development, staging, production) who need to quickly identify differences or audit settings.

TSV is preferred over CSV for this conversion because tab characters rarely appear in configuration values, eliminating the quoting and escaping complexities that CSV requires. The resulting TSV files can be directly pasted into spreadsheets from the clipboard, imported into databases for configuration management, or processed with command-line tools like awk and cut that work naturally with tab-delimited data.

For data science workflows, converting TOML to TSV enables easy ingestion into analysis tools like pandas in Python or data.table in R. This allows teams to build automated configuration auditing pipelines, generate reports comparing settings across deployments, or maintain configuration inventories in a format that both technical and non-technical team members can work with.

Key Benefits of Converting TOML to TSV:

  • Spreadsheet Analysis: Open directly in Excel, Google Sheets, or LibreOffice Calc
  • Configuration Auditing: Sort and filter settings across environments
  • Database Import: Bulk-load configuration data into databases
  • Data Pipeline Integration: Process with awk, cut, and other CLI tools
  • No Quoting Issues: Tabs rarely appear in config values, avoiding CSV escaping
  • Clipboard Friendly: Paste directly into spreadsheets with correct column alignment
  • Comparison Ready: Diff configurations side by side in tabular form

Practical Examples

Example 1: Application Settings Audit

Input TOML file (settings.toml):

[server]
host = "api.example.com"
port = 8443
timeout = 30
tls_enabled = true

[logging]
level = "info"
format = "json"
max_file_size = 10485760

Output TSV file (settings.tsv):

Section	Key	Value	Type
server	host	api.example.com	string
server	port	8443	integer
server	timeout	30	integer
server	tls_enabled	true	boolean
logging	level	info	string
logging	format	json	string
logging	max_file_size	10485760	integer

Example 2: Multi-Environment Comparison

Input TOML file (production.toml):

[database]
host = "prod-db.internal"
port = 5432
max_connections = 100
ssl_mode = "verify-full"

[cache]
driver = "redis"
host = "prod-cache.internal"
ttl = 3600

Output TSV file (production.tsv):

Section	Key	Value	Type
database	host	prod-db.internal	string
database	port	5432	integer
database	max_connections	100	integer
database	ssl_mode	verify-full	string
cache	driver	redis	string
cache	host	prod-cache.internal	string
cache	ttl	3600	integer

Example 3: Dependency Inventory

Input TOML file (pyproject.toml):

[project]
name = "data-processor"
version = "1.2.0"
requires-python = ">=3.9"

[project.dependencies]
pandas = ">=2.0"
numpy = ">=1.24"
sqlalchemy = ">=2.0"

Output TSV file (pyproject.tsv):

Section	Key	Value
project	name	data-processor
project	version	1.2.0
project	requires-python	>=3.9
project.dependencies	pandas	>=2.0
project.dependencies	numpy	>=1.24
project.dependencies	sqlalchemy	>=2.0

Frequently Asked Questions (FAQ)

Q: What is TSV format?

A: TSV (Tab-Separated Values) is a plain text format for storing tabular data where columns are separated by tab characters and rows by newlines. It is registered with IANA as "text/tab-separated-values" and is widely supported by spreadsheets, databases, and data analysis tools.

Q: Why use TSV instead of CSV?

A: TSV is often preferred over CSV because tab characters rarely appear in configuration data, eliminating the need for complex quoting rules. CSV requires quoting fields that contain commas, newlines, or quotes, which can introduce parsing ambiguities. TSV is also the default format when pasting data from spreadsheets into text editors.

Q: How is TOML's hierarchical structure flattened to TSV?

A: TOML tables and sub-tables are flattened using dot notation in the section column (e.g., "database.pool" for a [database.pool] table). Each key-value pair becomes a separate row with columns for the section path, key name, value, and optionally the data type.

Q: Can I open TSV files in Excel?

A: Yes! Excel natively supports TSV files. You can open them directly (File > Open), and Excel will automatically recognize tab delimiters and place data in separate columns. You can also rename .tsv files to .txt and use Excel's import wizard for more control over the parsing.

Q: How are TOML arrays handled in TSV?

A: TOML arrays can be handled in several ways: each array element can become a separate row with an index column, or the entire array can be serialized as a single string value. Arrays of tables generate multiple rows with the same section name but different values for each table entry.

Q: Can I convert TSV back to TOML?

A: Yes, if the TSV preserves section paths, key names, values, and type information, it can be reconstructed into valid TOML. However, some TOML features like comments, inline tables, and specific formatting preferences will not survive the round trip through TSV.

Q: Is TSV suitable for large TOML files?

A: TSV handles large configurations very well. The flat tabular format is efficient to parse and process, and tools like awk, cut, and pandas can handle millions of rows efficiently. Large TOML files with many sections and keys will produce correspondingly large but easily manageable TSV files.

Q: What encoding should I use for TSV files?

A: UTF-8 is recommended for TSV files, especially when converting from TOML (which requires UTF-8). This ensures that any Unicode characters in configuration values are preserved correctly. Most modern spreadsheets and tools handle UTF-8 encoded TSV files without issues.