A cute, declarative config language with fail-fast behavior and optional type safety.
Project description
✧・゚ Yumly ・゚✧
⚠️ Warning — subject to changes.
Yumly is a cute, declarative configuration language with fail-fast behavior and optional type safety, blending elements from many configuration formats and some ideas from my head.
⟡ Hey! New here? Check my Documentation Home for a starter guide!
✿ What's in Yumly?
- No indentation — blocks delimited by
{ }allowing flexible organization - Optional type hints — you can declare intent UwU
- Fail-fast — syntax and validation errors are raised immediately with cute cute messages
- No overwriting — duplicate keys and bindings are not allowed.
- Native env vars —
$["VAR"]andinclude { ".env" }are first class ;) - Readable — it's easy to read and understand ^_^
- Extensions
.yumlyand.yuy(it's so cute!!)
Why i created Yumly
- I created Yumly for fun — I had never built a parser before. I wanted something simple and special to use in my own projects.
- Yumly mixes ideas from many formats, but initially YAML and JSON, but tries to be more explicit, safe.
- I know the “cuteness” and personality won’t be for everyone — and that’s okay.
- I also wanted to learn Nim and avoid going down the “Holy C” path.
✿ Syntax & Features
For the complete syntax, see:
- Grammar Overview — detailed guide
- EBNF Grammar — formal specification
- Yumyumy ♡ Format — internal AST representation
- Ylwa Format — benchmark and log format
✿ Quick Start
Python
pip install yumly
from yumly import Yumly
data = Yumly().load("config.yumly")
Hey!, check out the Python Usage Guide for more.
Nim
git clone https://github.com/Creeper011/Yumly
cd Yumly/
nimble install --path:. # not published on Nimble yet
import Yumly
let config = loadYumly("config.yumly")
Hey!, check out the Nim Usage Guide for more.
Nix / NixOS (For the Yumly CLI ✨)
nix profile add github:Creeper011/Yumly
✿ Development & Tools
- CLI ✨: Check the Yumly CLI ✨ documentation in docs/usage/yumly_cli.md
- Playground 🛝: Explore PoCs and interactive notebooks in The Playground
- VSCode: Check the extension folder for installation.
- Tests: Detailed in Test System.
✿ Additional Information:
- This is a super personal project with open code. Contributions are welcome, but theres no guarantee of support or roadmap. use it, enjoy it, and if something breaks, open an issue ♡
★ License ★
MIT — see LICENSE.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file yumly-0.9.0.tar.gz.
File metadata
- Download URL: yumly-0.9.0.tar.gz
- Upload date:
- Size: 5.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
862306e33b35272b15ecce3164bf414ee61e89789bcb3c0918a77be65bf005e0
|
|
| MD5 |
cf33db3438588ac37d244cf556a6b26f
|
|
| BLAKE2b-256 |
77ea857347896b2361fb315518988d31c8fb22a9c7bb90a4f3549cc2e86df9b8
|
Provenance
The following attestation bundles were made for yumly-0.9.0.tar.gz:
Publisher:
release.yml on Creeper011/Yumly
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
yumly-0.9.0.tar.gz -
Subject digest:
862306e33b35272b15ecce3164bf414ee61e89789bcb3c0918a77be65bf005e0 - Sigstore transparency entry: 1805779864
- Sigstore integration time:
-
Permalink:
Creeper011/Yumly@8b3ff12b66748a78dcc99a4fffe2911da2b3e9f5 -
Branch / Tag:
refs/tags/v0.9.0 - Owner: https://github.com/Creeper011
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@8b3ff12b66748a78dcc99a4fffe2911da2b3e9f5 -
Trigger Event:
push
-
Statement type:
File details
Details for the file yumly-0.9.0-py3-none-win_amd64.whl.
File metadata
- Download URL: yumly-0.9.0-py3-none-win_amd64.whl
- Upload date:
- Size: 273.9 kB
- Tags: Python 3, Windows x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2a45cc09ce38c690279bee66613418589dca14485f0f88c2c691e06a46c65864
|
|
| MD5 |
b7ba3d60d387453a7e937e4229496c50
|
|
| BLAKE2b-256 |
fb39cf9a3b9638c89d67c8aed3c566796c7b0997b1f1013545bad0f7112c6c67
|
Provenance
The following attestation bundles were made for yumly-0.9.0-py3-none-win_amd64.whl:
Publisher:
release.yml on Creeper011/Yumly
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
yumly-0.9.0-py3-none-win_amd64.whl -
Subject digest:
2a45cc09ce38c690279bee66613418589dca14485f0f88c2c691e06a46c65864 - Sigstore transparency entry: 1805779958
- Sigstore integration time:
-
Permalink:
Creeper011/Yumly@8b3ff12b66748a78dcc99a4fffe2911da2b3e9f5 -
Branch / Tag:
refs/tags/v0.9.0 - Owner: https://github.com/Creeper011
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@8b3ff12b66748a78dcc99a4fffe2911da2b3e9f5 -
Trigger Event:
push
-
Statement type:
File details
Details for the file yumly-0.9.0-py3-none-manylinux_2_28_x86_64.whl.
File metadata
- Download URL: yumly-0.9.0-py3-none-manylinux_2_28_x86_64.whl
- Upload date:
- Size: 206.0 kB
- Tags: Python 3, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
de726689beb9c25576505908393e8a2aeeaafd8e6b6237e30a20c9084ca481f5
|
|
| MD5 |
8bf8a224cd513813a52a655fd3b002f7
|
|
| BLAKE2b-256 |
42f8a6faaf41af557cfad02fdfe47e7e2d975a4784673cc0c2e64172284f3301
|
Provenance
The following attestation bundles were made for yumly-0.9.0-py3-none-manylinux_2_28_x86_64.whl:
Publisher:
release.yml on Creeper011/Yumly
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
yumly-0.9.0-py3-none-manylinux_2_28_x86_64.whl -
Subject digest:
de726689beb9c25576505908393e8a2aeeaafd8e6b6237e30a20c9084ca481f5 - Sigstore transparency entry: 1805779905
- Sigstore integration time:
-
Permalink:
Creeper011/Yumly@8b3ff12b66748a78dcc99a4fffe2911da2b3e9f5 -
Branch / Tag:
refs/tags/v0.9.0 - Owner: https://github.com/Creeper011
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@8b3ff12b66748a78dcc99a4fffe2911da2b3e9f5 -
Trigger Event:
push
-
Statement type:
File details
Details for the file yumly-0.9.0-py3-none-macosx_11_0_arm64.whl.
File metadata
- Download URL: yumly-0.9.0-py3-none-macosx_11_0_arm64.whl
- Upload date:
- Size: 152.8 kB
- Tags: Python 3, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2609ea35f77e955c42d59c4f6c5bfde9323c0b2cd62ec285f393a4be13c1a96e
|
|
| MD5 |
4e6e86ae33c648e69fb98bb76e29fc2e
|
|
| BLAKE2b-256 |
7224b5002c0a488d539aa146507ebff33cc6fbb3d0d8b6adb20bce1a51c0e296
|
Provenance
The following attestation bundles were made for yumly-0.9.0-py3-none-macosx_11_0_arm64.whl:
Publisher:
release.yml on Creeper011/Yumly
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
yumly-0.9.0-py3-none-macosx_11_0_arm64.whl -
Subject digest:
2609ea35f77e955c42d59c4f6c5bfde9323c0b2cd62ec285f393a4be13c1a96e - Sigstore transparency entry: 1805779929
- Sigstore integration time:
-
Permalink:
Creeper011/Yumly@8b3ff12b66748a78dcc99a4fffe2911da2b3e9f5 -
Branch / Tag:
refs/tags/v0.9.0 - Owner: https://github.com/Creeper011
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@8b3ff12b66748a78dcc99a4fffe2911da2b3e9f5 -
Trigger Event:
push
-
Statement type: