libtoml fork that uses tlibc
Go to file
2025-11-27 01:24:27 +05:00
.vscode moved functions code to separate files 2025-11-26 16:26:01 +05:00
dependencies replaced TomlString with StringBuilder 2025-11-10 05:42:29 +05:00
include improved error messages in TomlTable_get* 2025-11-27 01:24:27 +05:00
src improved error messages in TomlTable_get* 2025-11-27 01:24:27 +05:00
tests replaced TomlArray with tlibc List 2025-11-26 17:02:38 +05:00
.gitignore project created 2025-11-09 23:47:51 +05:00
project.config added tlibc error handling everywhere 2025-11-26 16:42:40 +05:00
project.config.user.default project created 2025-11-09 23:47:51 +05:00
README.md added tlibc error handling everywhere 2025-11-26 16:42:40 +05:00
tlibtoml.config project created 2025-11-09 23:47:51 +05:00

tlibtoml

A fork of libtoml rewritten to use tlibc instead of its own (worse) implementation of collections and strings. For example, Table from libtoml is just an array of key-value pairs, where search happens by calling strcmp() on each element. Such inefficient code hurts my mind, so i have no other choise than to rewrite this library.

Build

  1. Clone this repository.

    git clone https://timerix.ddns.net/git/Timerix/tlibtoml.git
    
  2. Install cbuild version specified in project.config.

  3. Clone tlibc. By default dependencies/tlibc.config expects that tlibc/ is present in the same directory as tlibtoml/. If you cloned it to another directory, change DEPENDENCIES_DIR in tlibtoml/project.user.config.

    git clone https://timerix.ddns.net/git/Timerix/tlibc.git
    
  4. Build and run tests

    cd tlibtoml
    cbuild build_exec exec
    
  5. To build library use tasks build_static_lib[_dbg] or build_shared_lib[_dbg]

Usage

#include "tlibtoml.h"

int main(){
    Deferral(32); // reserve memory for 32 defers
    try_fatal_void(tlibc_init());
    try_fatal_void(tlibtoml_init());
    Defer(tlibc_deinit());
    Defer(tlibtoml_deinit());

    Return 0; // call defers
}