What is .toml?
TOML (Tom's Obvious, Minimal Language) is a configuration file format that is easy to read due to its clear semantics. It is designed to map unambiguously to a hash table and is widely used in the Rust and Python ecosystems.
This quick guide explains when to use .toml files, how to open them on any device, and how to share them instantly with FileXhost.
When to use .toml files
- You are working with Rust projects (`Cargo.toml`).
- You are managing Python dependencies with Poetry (`pyproject.toml`).
- You need a configuration format that is stricter than YAML but easier to read than JSON.
- You want to avoid the ambiguity of whitespace-sensitive languages.
How to open .toml files
TOML files are plain text and can be opened in any text editor. IDEs like VS Code and IntelliJ have excellent support for syntax highlighting.
Algorithm details
TOML uses key-value pairs (`key = "value"`) and sections (`[section]`) similar to INI files but with a formal specification. It supports strings, integers, floats, booleans, arrays, and tables (dictionaries).
Browser & platform support
- Direct: Browsers display it as plain text.
- Parsing: Requires a parser library (like `@iarna/toml` in JS) to convert to objects.
Format comparison
| Feature | Details |
|---|---|
| Readability | Highly readable, looks a lot like standard INI files but with more features. |
| Strictness | Stricter than YAML. No tabs allowed, strict typing prevents ambiguity. |
| Ecosystem | The standard for Rust (Cargo) and modern Python packaging (PEP 518). |
How to create toml files
- Text Editor: Save file as `config.toml`.
- CLI Tools: `cargo init` (Rust) or `poetry init` (Python) generate TOML files automatically.
How to convert toml files
- To JSON/YAML: Use tools like `yq` (which supports TOML) or online converters.
- FileXhost: Upload to share configuration files.
Advantages & disadvantages
Advantages
- Obvious and minimal semantics
- No whitespace ambiguity (unlike YAML)
- Easy to parse into data structures
- Great support for nested tables
Disadvantages
- Can get verbose for deeply nested hierarchies
- Less universal than JSON or YAML (though growing rapidly)
- Array of tables syntax (`[[table]]`) can be confusing initially
Tools & software
Editors
VS Code (Even Better TOML extension), Sublime Text
Build Tools
Cargo (Rust), Poetry (Python), Hugo (Static Site Generator)
Parsers
toml-rs, toml (Python), @iarna/toml (Node.js)
Frequently asked questions
Is TOML better than YAML?
For configuration files, many developers prefer TOML because it is less prone to indentation errors and has explicit types.
What uses TOML?
It is the default for Rust's package manager (Cargo), Python's Poetry, the Hugo static site generator, and many modern CLI tools.
Can I use comments in TOML?
Yes, use the `#` symbol for comments, just like in Python, Ruby, or YAML.
Technical specs
- File type
- Code
- Extension
- .toml
- MIME type
- application/toml, text/x-toml
- Compression
- Uncompressed
- Max file size on FileXhost
- Up to 25 MB per file on the free plan and up to 1 GB on Pro FileXhost accounts.
Share .toml files instantly
Upload your .toml file to FileXhost to get a clean, shareable URL in seconds. View the file in a modern browser, protect access with optional settings, and let others download it without any confusing ads or cluttered file pages.
Upload .toml file