Releases: 1ay1/vibe
Releases Β· 1ay1/vibe
Release list
libvibe 1.1.0 β VIBE is now a real C library π
libvibe 1.1.0 β the reference implementation is now a real C library
VIBE's C reference parser graduates to libvibe: an installable static +
shared library, a vibe CLI, an emitter, stable error codes, and enforced
resource limits β all 100% source-compatible with the previous API. The
VIBE format itself is unchanged (still 1.0).
Install
git clone https://github.com/1ay1/vibe && cd vibe
make && sudo make install
cc app.c $(pkg-config --cflags --libs vibe) -o appThe vibe CLI
vibe check config.vibe # validate; structured error on failure
vibe fmt config.vibe -w # canonical reformat, in place
vibe get config.vibe server.portLibrary highlights
- π¦ Static (
libvibe.a) + versioned shared (libvibe.so.1,.dylibon macOS) library, avibe.pcpkg-config file, andmake install/uninstall - βοΈ Emitter:
vibe_emit()/vibe_emit_file()serialise a value tree back to canonical VIBE (idempotentfmt) - π§΅ Length-aware
vibe_parse_buffer()and stateless one-shotvibe_parse() - π§― Stable error codes on the API (
VibeErrorCode+vibe_error_code_string()), matching the spec's ten categories 1:1 - ποΈ Configurable, enforced
VibeLimits(spec-minimum defaults) β fails closed on untrusted input - π Pluggable allocator, version queries,
vibe_value_clone(),*_ordefaulted getters,vibe_type_name(), container-size helpers - π·οΈ
extern "C"+-fvisibility=hidden: the shared object exports only the 48 publicvibe_*symbols
Hardening
ctypecalls takeunsigned char(no UB on bytes β₯ 0x80); quoted strings use a growable buffer (was a fixed 4 KiB stack cap); allocation-failure paths no longer leak or crash; a leading UTF-8 BOM reportsencoding-error- Clean under
-Wall -Wextra -Werror -pedanticand ASan/UBSan
Quality
- 25/25 unit tests Β· 18/18 conformance (tree-equality on valid, error-category on invalid) Β· committed
make conformancerunner Β· CI now runs the unit suite, conformance, a CLI smoke test, and a dedicated ASan/UBSan job
Docs & website
- New API reference, rewritten
INSTALL.md, a refreshed website with an Install / CLI / C-API section, and a regenerated specification page viamake docs
Full changelog: https://github.com/1ay1/vibe/blob/main/CHANGELOG.md
VIBE v1.0.0 - Initial Release π
1.0.0 - 2025-01-15
Added
- π Initial release of VIBE format specification v1.0
- β¨ Complete C parser implementation with single-pass O(n) parsing
- π Comprehensive format specification (SPECIFICATION.md)
- π§ Full API for parsing, value access, and memory management
- π Detailed README with examples and documentation
- π§ͺ Example configuration files (simple, web server, database)
- π€ Contributing guidelines (CONTRIBUTING.md)
- π MIT License
- π GitHub Actions CI/CD pipeline
- π Memory leak detection with Valgrind
- π Code coverage reporting
Features
- Support for all basic data types:
- 64-bit integers
- Double-precision floats
- Booleans (true/false)
- UTF-8 strings (quoted and unquoted)
- Arrays (inline and multi-line)
- Nested objects
- Comments with
# - String escape sequences (
\",\\,\n,\t,\r,\uXXXX) - Path-style value access with dot notation
- Detailed error reporting with line/column information
- No reserved words - maximum flexibility
- Whitespace-insensitive (no significant indentation)
Implementation Details
- Maximum nesting depth: 64 levels
- Initial capacity: 16 elements (dynamic growth)
- POSIX-compliant (strdup usage)
- C11 standard required
- Zero external dependencies
Examples
- Simple configuration
- Complex web server setup
- Database cluster configuration
- Error test cases
Documentation
- API reference in vibe.h
- Usage examples in examples/
- Complete specification document
- Contributing guidelines
- Installation instructions
Testing
- Automated CI on Ubuntu and macOS
- GCC and Clang compiler support
- Valgrind memory leak detection
- Static analysis with extra warnings
- Code coverage reporting
[Unreleased]
Planned
- Python bindings
- Rust implementation
- JavaScript/Node.js implementation
- Go implementation
- VS Code syntax highlighting extension
- Conversion tools (JSONβVIBE, YAMLβVIBE, TOMLβVIBE)
- Schema validation support
- Comprehensive benchmark suite
- Windows support testing
Legend:
- π Major release
- β¨ New feature
- π Bug fix
- π Documentation
- π§ Tooling
- π Performance
β οΈ Breaking change- π Security fix