Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/gotomain/c-utils
Tiny, modular, drop-in, library of some most commonly used utility methods for C (embedded) applications. Intended to be used as a git-submodule inside your projects to kickstart development. See https://c-utils.gotomain.io for more details.
https://github.com/gotomain/c-utils
c embeded helper-functions helpers-library library utility utility-library
Last synced: 5 days ago
JSON representation
Tiny, modular, drop-in, library of some most commonly used utility methods for C (embedded) applications. Intended to be used as a git-submodule inside your projects to kickstart development. See https://c-utils.gotomain.io for more details.
- Host: GitHub
- URL: https://github.com/gotomain/c-utils
- Owner: goToMain
- License: apache-2.0
- Created: 2018-08-05T03:52:56.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2024-11-11T13:18:01.000Z (about 1 month ago)
- Last Synced: 2024-12-14T03:33:49.049Z (12 days ago)
- Topics: c, embeded, helper-functions, helpers-library, library, utility, utility-library
- Language: C
- Homepage: https://gotomain.io
- Size: 1.5 MB
- Stars: 141
- Watchers: 10
- Forks: 75
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# c-utils
[![Build CI][1]][2]This repository hosts some modular, drop-in, C utilities that you can copy into
your project and and kick-start your work.## List of utils:
The following methods/utils are available in this repo:
- **arg_parser** - Command line argument parsing helper
- **bus_server** - A broadcasting IPC server for connected clients
- **channel** - A Communication protocol (uart, msgq, tcp, etc.,) abstraction layer
- **circbuf** - Generic, lock-free, circular/ring buffer implementation
- **disjoint_set** - Disjoint-set library
- **event** - Event notifier for multi-threaded applications
- **fdutils** - Collection of operations that are commonly performed on unix file descriptors
- **file** - Collection of methods that operate on directories, files and paths
- **filo** - First-In Last-Out (stack) implementation
- **hashmap** - Hashmap/dictionary/map library
- **list** - Singly and doubly linked list data library
- **logger** - Logging module for C applications with log-levels, colors, and log-to-file features
- **memory** - Do-or-die helper methods that allow use of mallloc/calloc/strdups without NULL checks
- **procutils** - Linux process manipulation utilities
- **queue** - Last-in First-out (queue) implementation
- **serial** - Library to interact with uart devices
- **slab** - Poor man's slab allocator for dynamic memory without using heap
- **sockutils** - Collection of methods that operate on sockets
- **stack** - Stack implementation using linked lists
- **strlib** - A string_t type and some common methods that operate on them
- **strutils** - Commonly used C string utils
- **utils** - Other ad-hoc methods that don't fit anywhere else
- **workqueue** - Worker thread library that waits for a job to execute## How to use this repo?
You can clone this repo and copy individual files from src/ and link it to your
project.[1]: https://github.com/embedjournal/c-utils/workflows/Build%20CI/badge.svg
[2]: https://github.com/embedjournal/c-utils/actions?query=workflow%3A%22Build+CI%22
[3]: https://embedjournal.com/implementing-circular-buffer-embedded-c/