Here you can read past volumes of HelloGitHub Monthly by category. You are currently viewing the HelloGitHub C collection.
Zero-dependency C Language UI Layout Library.This is a high-performance 2D UI layout library implemented in C language, capable of providing microsecond-level layout performance and flexible responsive layout capabilities. It adopts a layout model similar to flexbox, supporting responsive design, text wrapping, scrolling containers, and other features. The library is characterized by zero dependencies and lightweight nature, with the core file only being 2KB and can be compiled into a wasm file (15KB). It is suitable for game development, embedded devices, and lightweight web applications.

Open Source AirPlay Audio Seamless Integration Solution. This is an audio player that supports the AirPlay/AirPlay 2 protocol, capable of receiving and playing AirPlay audio streams from Apple devices. With just a low-cost device like a Raspberry Pi, you can upgrade a regular sound system to a wireless AirPlay-compatible audio system, easily creating a multi-room wireless audio system at home.

A Minimalist Windows Timer.This is a lightweight and easy-to-use Windows timer that integrates time display, countdown, and Pomodoro clock functions. Written in C, it is compact and resource-efficient, featuring a transparent interface and rich functionalities. Users can adjust the size and position of the interface, set timeout actions (lock screen/notify/shutdown), and customize colors and fonts to meet personalized needs.

Unix Command-Line Task Queue Tool. This is a lightweight command-line queue tool that allows users to add tasks to a queue and execute them in sequence in the background. It supports running on systems like Linux, FreeBSD, and macOS, suitable for scenarios that require the sequential execution of multiple scripts or commands.
# 将命令加入队列并在后台执行 nq COMMAND # 等待所有队列中的任务完成 nq -w # 例如,将 make clean 命令加入队列 nq make clean # 将 make depends 命令加入队列 nq make depends # 将 make all 命令加入队列 nq make all # 查看当前任务日志 nqtail
Take You Back to the Game Engine of Half-Life. This is an open-source game engine, primarily used for running and modifying games developed with the GoldSrc engine. GoldSrc is the game engine used by Valve to develop classic games like Half-Life. Xash3D FWGS offers a compatible, cross-platform game engine to let users play these classic games on modern systems, mobile devices, and handheld consoles, as well as perform deep modifications and extensions, such as adding touch controls, voice chat, and renderer options.

Linux Daemon to Prevent OOM. This is an OOM (Out of Memory) daemon specifically designed for Linux to compensate for the deficiency of the kernel's built-in OOM Killer, which only triggers when memory runs out. It intervenes sooner (by default 10%), automatically terminating the process that consumes the most memory, thus preventing the system from becoming frozen due to memory exhaustion.

SQLite Vector Search Extension. This is a lightweight, zero-dependency vector search SQLite extension that adds the ability to insert and query floating-point, integer, and binary vectors into SQLite databases. It can run on any platform that supports SQLite, including Linux, macOS, Windows, browsers (WASM), Raspberry Pi, and more.

A tool for mounting remote file systems via SSH. This is a file system tool based on the SFTP protocol, which allows you to mount remote file systems to the local machine via the SSH protocol. It is easy to operate and only requires a single command to manage remote files and directories as if accessing a local file system, compatible with Linux, BSD, and macOS systems.
挂载文件系统 sshfs [user@]hostname:[directory] mountpoint 卸载文件系统 fusermount -u mountpoint
Efficient Lightweight Log Collection and Processing Tool. This is a lightweight and efficient tool for collecting, processing, and forwarding log data from various sources in real-time, characterized by low memory and CPU usage.

Implementing a Hash Table from Scratch in C Language. This project explains how to implement an open addressing and double hashing hash table using the C language, with approximately 200 lines of code, and an estimated learning time of 1 to 2 hours.