Changelog
This changelog is generated automatically from GitHub Releases.
v0.5.0: TOML 1.0 Complete + Partial TOML 1.1
2026-01-11 ยท GitHub
Package Files
toml.mojopkg - Compiled with Mojo 0.26.1.0.dev2026010605 (9f204ce1)
โ ๏ธ Compatibility Note: This .mojopkg file is compiled with the Mojo version shown above. It may not work with different Mojo versions. For maximum compatibility, use source installation (git submodule or direct copy).
v0.4.0 - TOML Writer Release ๐ฅ
2026-01-11 ยท GitHub
Package Files
toml.mojopkg - Compiled with Mojo 0.26.1.0.dev2026010605 (9f204ce1)
โ ๏ธ Compatibility Note: This .mojopkg file is compiled with the Mojo version shown above. It may not work with different Mojo versions. For maximum compatibility, use source installation (git submodule or direct copy).
v0.3.0 - Quality and Performance
2026-01-07 ยท GitHub
๐ Quality and Performance Release
mojo-toml v0.3.0 brings critical bug fixes, comprehensive testing improvements, performance documentation, and enhanced examples. All 96 tests passing!
๐ Key Highlights
Critical Bug Fixes
- โ
Proper dotted key support -
a.b.c = "value"now creates nested structures correctly - โ Duplicate key detection - Raises errors when duplicate keys are found
- โ Enhanced error messages - All errors now include line and column context
- โ
Named type constants - Replaced magic numbers with
TomlValueTypestruct usingcomptime
Parser Improvements
- ๐ Parser.reset() method for parser instance reusability
- ๐ ๏ธ Helper methods - Extracted
copy_path()to eliminate code duplication - ๐ Better documentation - Enhanced comments explaining Mojoโs ownership model
Performance & Benchmarking
- โก Comprehensive benchmarks - New benchmark suite in
benchmarks/benchmark_parser.mojo - ๐ Performance documentation -
docs/PERFORMANCE.mdwith detailed analysis - ๐ข Measured performance:
- Simple parse: 26ฮผs (37,000 parses/sec)
- Real pixi.toml: 2ms (446 parses/sec)
- Table access: 10ฮผs overhead (negligible)
Testing Improvements
- ๐ Reorganized tests - 10 logical test files (was 7)
- ๐ท๏ธ Better naming -
test_basic.mojoโtest_lexer.mojo - โ More tests - 96 tests total (up from 79)
- ๐ Documentation - New
docs/TEST_ORGANIZATION.mdguide
Test Files: 1. test_lexer.mojo (25) - Lexer/tokenization 2. test_parser.mojo (10) - Parser core 3. test_real_world.mojo (4) - Real files 4. test_fixtures.mojo (5) - Complex examples 5. test_arrays.mojo (14) - Array parsing 6. test_inline.mojo (13) - Inline tables 7. test_tables.mojo (8) - Table headers 8. test_dotted_keys.mojo (7) - Dotted keys [NEW] 9. test_validation.mojo (7) - Error detection [NEW] 10. test_parser_reset.mojo (3) - Parser API [NEW]
Enhanced Examples
- ๐จ Quickstart example -
examples/quickstart.mojomirrors README - ๐ Enhanced parse_pixi.mojo - Comprehensive configuration reporting
- ๐งช Test examples -
examples/test_quickstart.mojodemonstrates testing
Project Organization
- ๐ Organized docs - Moved documentation to
docs/directory - ๐ซ Proper .gitignore - Excludes build artifacts and binaries
- ๐งน Clean repository - Removed accidentally committed binaries
๐ Technical Details
Dotted Key Implementation
# Now properly creates nested structure:
a.b.c = "value"
# Results in: {a: {b: {c: "value"}}}
Duplicate Key Detection
key = "value1"
key = "value2" # Error: "Duplicate key: key"
Error Context
Error: Unexpected token at line 5, column 12
๐ Migration
No breaking changes! All enhancements are backward compatible.
๐ฆ Installation
# Git submodule (recommended)
git submodule add https://github.com/databooth/mojo-toml vendor/mojo-toml
# Direct copy
git clone https://github.com/databooth/mojo-toml
cp -r mojo-toml/src/toml your-project/lib/toml
# Coming soon: modular-community channel
pixi add mojo-toml๐ Acknowledgements
- DataBooth - Project sponsor
- Co-Authored-By: Warp agent@warp.dev
See CHANGELOG.md for complete details.
v0.2.0: Nested Table Implementation ๐ฅ
2026-01-07 ยท GitHub
Package Files
toml.mojopkg - Compiled with Mojo 0.26.1.0.dev2026010605 (9f204ce1)
โ ๏ธ Compatibility Note: This .mojopkg file is compiled with the Mojo version shown above. It may not work with different Mojo versions. For maximum compatibility, use source installation (git submodule or direct copy).