From 2b3a750cce29626e4cd95b035bda03267210e549 Mon Sep 17 00:00:00 2001 From: ZHU Yuhao Date: Fri, 20 Feb 2026 16:16:48 +0100 Subject: [PATCH] Add tomlmojo --- recipes/tomlmojo/README.md | 269 +++++++++++++++++++++++++++++++++++ recipes/tomlmojo/image.jpeg | Bin 0 -> 61335 bytes recipes/tomlmojo/recipe.yaml | 46 ++++++ 3 files changed, 315 insertions(+) create mode 100644 recipes/tomlmojo/README.md create mode 100644 recipes/tomlmojo/image.jpeg create mode 100644 recipes/tomlmojo/recipe.yaml diff --git a/recipes/tomlmojo/README.md b/recipes/tomlmojo/README.md new file mode 100644 index 00000000..ab1b2662 --- /dev/null +++ b/recipes/tomlmojo/README.md @@ -0,0 +1,269 @@ +# TOMLMojo + +A native TOML v1.0 parser for [Mojo](https://www.modular.com/mojo). + +**[Repository on GitHub»](https://github.com/mojomath/decimojo/tree/main/src/tomlmojo)** | **[DeciMojo»](https://github.com/mojomath/decimojo)** + +- [Overview](#overview) +- [History](#history) +- [Installation](#installation) +- [Quick start](#quick-start) + - [Parse a TOML string](#parse-a-toml-string) + - [Parse a TOML file](#parse-a-toml-file) + - [Dotted keys and nested tables](#dotted-keys-and-nested-tables) + - [Inline tables](#inline-tables) + - [Arrays and arrays of tables](#arrays-and-arrays-of-tables) + - [Integer formats and special floats](#integer-formats-and-special-floats) +- [Supported TOML features](#supported-toml-features) +- [API reference](#api-reference) + - [Functions](#functions) + - [`TOMLDocument`](#tomldocument) + - [`TOMLValue`](#tomlvalue) + - [`TOMLValueType`](#tomlvaluetype) +- [License](#license) + +## Overview + +TOMLMojo is a lightweight, pure-Mojo TOML parser (~1,500 LOC) that implements the core [TOML v1.0 specification](https://toml.io/en/v1.0.0). It parses TOML source text into a `TOMLDocument` — a nested dictionary structure that you can query by key, table name, or array index. It handles all common TOML constructs including nested tables, inline tables, dotted keys, arrays of tables, and all TOML data types. + +## History + +TOMLMojo was initially developed in **April 2025** alongside [DeciMojo](https://github.com/mojomath/decimojo) v0.3.0 to support DeciMojo's TOML-based test data system. At that time, no TOML parser existed in the Mojo ecosystem, so I wrote one from scratch. + +Currently, **DeciMojo heavily depends on TOMLMojo** for its entire testing and benchmarking infrastructure. All test cases and benchmark configurations are stored as TOML files and loaded via TOMLMojo's `parse_file()` API. + +While originally built for internal use, TOMLMojo has grown into a general-purpose TOML library suitable for any Mojo project that needs to parse configuration files or structured data. + +The version number of TOMLMojo is aligned with the latest version of DeciMojo. + +## Installation + +TOMLMojo is available in the modular-community `https://repo.prefix.dev/modular-community` package repository. Add it to your `channels` in `pixi.toml`: + +```toml +channels = ["https://conda.modular.com/max", "https://repo.prefix.dev/modular-community", "conda-forge"] +``` + +Then install: + +```bash +pixi add tomlmojo +``` + +## Quick start + +### Parse a TOML string + +```mojo +import tomlmojo + +fn main() raises: + var doc = tomlmojo.parse_string(""" + title = "My App" + version = 42 + debug = true + + [server] + host = "localhost" + port = 8080 + + [database] + name = "mydb" + max_connections = 100 + """) + + # Access top-level values + print(doc.get("title").as_string()) # My App + print(doc.get("version").as_int()) # 42 + print(doc.get("debug").as_bool()) # True + + # Access table values + var server = doc.get_table("server") + print(server["host"].as_string()) # localhost + print(server["port"].as_int()) # 8080 +``` + +### Parse a TOML file + +```mojo +import tomlmojo + +fn main() raises: + var doc = tomlmojo.parse_file("config.toml") + var db = doc.get_table("database") + print(db["name"].as_string()) # mydb +``` + +### Dotted keys and nested tables + +```mojo +import tomlmojo + +fn main() raises: + var doc = tomlmojo.parse_string(""" + fruit.name = "apple" + fruit.color = "red" + fruit.size.width = 10 + fruit.size.height = 20 + + [server] + host = "localhost" + + [server.database] + name = "mydb" + port = 5432 + """) + + # Dotted keys create nested tables automatically + var fruit = doc.get("fruit").as_table() + print(fruit["name"].as_string()) # apple + var size = fruit["size"].as_table() + print(size["width"].as_int()) # 10 + + # Dotted table headers also nest + var server = doc.get("server").as_table() + var db = server["database"].as_table() + print(db["name"].as_string()) # mydb +``` + +### Inline tables + +```mojo +import tomlmojo + +fn main() raises: + var doc = tomlmojo.parse_string(""" + point = {x = 1, y = 2} + animal = {type.name = "pug"} + """) + + var pt = doc.get("point").as_table() + print(pt["x"].as_int()) # 1 + print(pt["y"].as_int()) # 2 + + # Dotted keys work inside inline tables too + var animal = doc.get("animal").as_table() + var typ = animal["type"].as_table() + print(typ["name"].as_string()) # pug +``` + +### Arrays and arrays of tables + +```mojo +import tomlmojo + +fn main() raises: + var doc = tomlmojo.parse_string(""" + colors = [ + "red", + "green", + "blue", + ] + + [[servers]] + name = "alpha" + ip = "10.0.0.1" + + [[servers]] + name = "beta" + ip = "10.0.0.2" + """) + + # Simple arrays + var colors = doc.get("colors").as_array() + print(len(colors)) # 3 + print(colors[0].as_string()) # red + + # Array of tables + var servers = doc.get_array_of_tables("servers") + print(len(servers)) # 2 + print(servers[0]["name"].as_string()) # alpha + print(servers[1]["ip"].as_string()) # 10.0.0.2 +``` + +### Integer formats and special floats + +```mojo +import tomlmojo + +fn main() raises: + var doc = tomlmojo.parse_string(""" + hex = 0xDEADBEEF + oct = 0o755 + bin = 0b11010110 + dec = 1_000_000 + pos_inf = inf + neg_inf = -inf + not_a_num = nan + """) + + print(doc.get("hex").as_int()) # 3735928559 + print(doc.get("oct").as_int()) # 493 + print(doc.get("bin").as_int()) # 214 + print(doc.get("dec").as_int()) # 1000000 +``` + +## Supported TOML features + +| Feature | Example | Supported | +| ------------------------- | ---------------------------- | --------- | +| Basic strings | `"hello\nworld"` | Yes | +| Literal strings | `'no\escape'` | Yes | +| Multiline basic strings | `"""..."""` | Yes | +| Multiline literal strings | `'''...'''` | Yes | +| Unicode escapes | `"\u0041"` → `A` | Yes | +| Integers (decimal) | `42`, `1_000` | Yes | +| Integers (hex/oct/bin) | `0xDEAD`, `0o755`, `0b1101` | Yes | +| Floats | `3.14`, `1e10`, `inf`, `nan` | Yes | +| Signed numbers | `+42`, `-3.14`, `+inf` | Yes | +| Booleans | `true`, `false` | Yes | +| Arrays | `[1, 2, 3]` | Yes | +| Multiline arrays | Trailing commas, newlines | Yes | +| Standard tables | `[table]` | Yes | +| Dotted table headers | `[a.b.c]` | Yes | +| Inline tables | `{x = 1, y = 2}` | Yes | +| Dotted keys | `a.b.c = "val"` | Yes | +| Quoted keys | `"my key" = "val"` | Yes | +| Array of tables | `[[items]]` | Yes | +| Duplicate key detection | Error on redefinition | Yes | +| Comments | `# comment` | Yes | +| Datetime types | `1979-05-27T07:32:00` | No | + +## API reference + +### Functions + +| Function | Description | +| --------------------------------------------- | ------------------- | +| `parse_string(input: String) -> TOMLDocument` | Parse a TOML string | +| `parse_file(path: String) -> TOMLDocument` | Parse a TOML file | + +### `TOMLDocument` + +| Method | Returns | Description | +| -------------------------- | ------------------------------- | --------------------------- | +| `get(key)` | `TOMLValue` | Get a top-level value | +| `get_table(name)` | `Dict[String, TOMLValue]` | Get a table as a dictionary | +| `get_array(key)` | `List[TOMLValue]` | Get an array | +| `get_array_of_tables(key)` | `List[Dict[String, TOMLValue]]` | Get an array of tables | + +### `TOMLValue` + +| Method | Returns | Description | +| ------------- | ------------------------- | -------------------------- | +| `as_string()` | `String` | Get value as string | +| `as_int()` | `Int` | Get value as integer | +| `as_float()` | `Float64` | Get value as float | +| `as_bool()` | `Bool` | Get value as boolean | +| `as_table()` | `Dict[String, TOMLValue]` | Get value as table dict | +| `as_array()` | `List[TOMLValue]` | Get value as array | +| `is_table()` | `Bool` | Check if value is a table | +| `is_array()` | `Bool` | Check if value is an array | + +### `TOMLValueType` + +Constants: `NULL`, `STRING`, `INTEGER`, `FLOAT`, `BOOLEAN`, `ARRAY`, `TABLE`. + +## License + +TOMLMojo is part of the [DeciMojo](https://github.com/mojomath/decimojo) project and is licensed under the Apache License v2.0. diff --git a/recipes/tomlmojo/image.jpeg b/recipes/tomlmojo/image.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..39851f6ca2b9229dacdec682b5537efb7e0e4ffb GIT binary patch literal 61335 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 z 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
v1Rc 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