Archived
1
0
Fork
You've already forked SelvaBase
0
SystemElva Utilities | C helpers
This repository has been archived on 2026年06月22日. You can view files and clone it, but you cannot make any changes to its state, such as pushing and creating new issues, pull requests or comments.
  • C 86.8%
  • Python 13.1%
  • Shell 0.1%
2026年04月23日 21:08:25 +02:00
docs/manual/selvalog + Add first documentation of the logger 2026年04月11日 21:54:44 +02:00
modules + Fix linking many modules with inter-dependencies 2026年04月17日 21:00:40 +02:00
.gitignore + Add '.gitignore' and 'do.sh' 2026年04月04日 18:36:28 +02:00
do.sh ~ Remove suffix '.v2' from builder folder 2026年04月16日 22:03:43 +02:00
LICENSE + Add LICENSE file 2026年04月23日 21:01:18 +02:00
README.md + Add README.md 2026年04月23日 21:08:25 +02:00

SelvaBase | Utilities for developing software in C

This repository contains utilities for developing well-structured and reusable software modules in C. It includes the following parts:

  • Allocation Utilities
  • JSON Package
  • Module-oriented Builder
  • Module-oriented Logger

Allocation Utilities

The allocators provide a genericized interface to allocators employing multiple different allocation strategies. The current supported types of allocators are:

  • Arena
  • C standard library malloc()-wrapper
  • Freelist interposer
  • Pool

The freelist interposer keeps a list of the backing allocator, most of the time a malloc-wrapper, and can free all of the allocations at the end of the specific part in the program at once.

Builder

The builder is a collection of Python scripts that manage dependency fetching, calling a compiler and packaging the software (generally: linking to a native executable).

While it may leave a lot of performance on the table, it is very easy to use and can be enhanced without heavy modifications to the core; the builder is modular.

JSON Package

The JSON package allows reading and writing JSON files. The writer is in a work-in-progress state and shouldn't be used.