Here you can read past volumes of HelloGitHub Monthly by category. You are currently viewing the HelloGitHub C collection.
Linux Desktop Mouse Gesture Launcher.This is a Wayland-based gesture launcher that enables quick application launching by drawing patterns with the mouse. New gestures can be added with just one command and by repeating the drawing three times, which is simple and intuitive to operate. All gesture data is stored in JSON files, making it convenient for editing, backing up, and migrating.

More Powerful Windows Task Manager.This is an advanced task management tool for the Windows platform. Compared with the system's built-in Task Manager, it can display more detailed process information in real time, including thread stacks, file handles, and network connections, etc.

Minimal C Language JSON Parsing Library.This is a lightweight C language JSON parsing library that provides reliable JSON traversal and basic parsing functions. It has only 150 lines of code and has no external dependencies. It adopts a zero-memory allocation strategy and parses directly on the original data. It is fast and has no risk of memory leaks. It is suitable for scenarios such as embedded, Internet of Things, and game development.
char *json_text = "{ \"x\": 10, \"y\": 20, \"w\": 30, \"h\": 40 }"; typedef struct { int x, y, w, h; } Rect; bool eq(sj_Value val, char *s) { size_t len = val.end - val.start; return strlen(s) == len && !memcmp(s, val.start, len); } int main(void) { Rect rect = {0}; sj_Reader r = sj_reader(json_text, strlen(json_text)); sj_Value obj = sj_read(&r); sj_Value key, val; while (sj_iter_object(&r, obj, &key, &val)) { if (eq(key, "x")) { rect.x = atoi(val.start); } if (eq(key, "y")) { rect.y = atoi(val.start); } if (eq(key, "w")) { rect.w = atoi(val.start); } if (eq(key, "h")) { rect.h = atoi(val.start); } } printf("rect: { %d, %d, %d, %d }\n", rect.x, rect.y, rect.w, rect.h); return 0; }
IO Resource Monitoring Tool in Terminal.This is a command-line tool for monitoring I/O in Linux systems. It has an interactive interface and operation mode similar to the 'top' command, and supports real-time sorting and display of processes according to I/O usage rate.

Out-of-the-box C Language Encryption Library.This is a modern, easy-to-use, cross-platform C language encryption library that provides comprehensive encryption operation APIs for developers. It integrates multiple encryption, signing and hash algorithms and is suitable for security communication, data protection and other scenarios.

Faster System Information Viewer.This is a command-line tool similar to neofetch, which provides an overview of system information in the terminal. It is written in C language and is faster than neofetch, which is written in bash. The information displayed includes the operating system, shell, kernel, CPU, GPU, memory, etc., and currently supports Linux, Android, FreeBSD, macOS, and Windows 7+ operating systems.

Extremely Easy-to-Use C Language Audio Library.This is a single-file, zero-dependency, cross-platform C language audio library. It encapsulates the underlying audio APIs of various mainstream operating systems into simple and easy-to-use interfaces, allowing you to easily implement functions such as audio playback, recording and processing. It is suitable for game engines, real-time communication, embedded, offline batch processing and other scenarios.
#include "miniaudio/miniaudio.h" #include <stdio.h> int main() { ma_result result; ma_engine engine; result = ma_engine_init(NULL, &engine); if (result != MA_SUCCESS) { return -1; } ma_engine_play_sound(&engine, "sound.wav", NULL); printf("Press Enter to quit..."); getchar(); ma_engine_uninit(&engine); return 0; }
Header-Only C Language Build System.This is a header-only C language library that supports directly defining build logic through C code, enabling automated compilation and building without relying on external tools. It can complete project building using only the C compiler.
Lightweight Multi-protocol Caching Service.This is a high-performance caching service focusing on low latency and low CPU usage. It performs excellently whether in single-thread or multi-thread. It can be used as a standalone service or a single-file library and supports multiple protocols such as RESP, Memcache, HTTP, and Postgres.

Library for Quickly Implementing USB Function on Microcontrollers.This is an open-source embedded USB Host/Device protocol library designed specifically for various microcontrollers (MCUs), providing efficient, easy-to-use and extensible USB support, compatible with multiple mainstream chip platforms.
