下拉刷新
C 项目

这里是按照「分类」阅读往期的 HelloGitHub 月刊内容, 您目前在查看 HelloGitHub C 项目 集合。

Star 554
Vol.117
22 天前

Linux 桌面鼠标手势启动器。这是一款基于 Wayland 的手势启动器,可通过鼠标绘制图案快速启动应用。新手势录入只需一条命令并重复绘制 3 次,操作简单直观。所有手势数据均以 JSON 文件形式存储,方便编辑、备份和迁移。

Hexecute
Star 1.9k
Vol.117
10 天前

更强大的 Windows 任务管理器。这是一款适用于 Windows 平台的高级任务管理工具,相比系统自带的任务管理器,能够实时显示更详细的进程信息,包括线程堆栈、文件句柄和网络连接等。

TaskExplorer
3
sj.h
Star 1.5k
Vol.116
4 个月前

极简的 C 语言 JSON 解析库。这是一个轻量级的 C 语言 JSON 解析库,提供可靠的 JSON 遍历和基础解析功能。它仅 150 行代码、无外部依赖,采用零内存分配策略,直接在原数据上进行解析,速度快且无内存泄漏风险,适用于嵌入式、物联网和游戏开发等场景。

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;
}
4
iotop
Star 619
Vol.115
1 个月前

终端下的 IO 资源监控工具。这是一款用于监控 Linux 系统 I/O 的命令行工具,拥有类似 top 命令的交互界面和操作方式,支持实时按 I/O 使用率对进程进行排序和展示。

iotop
Star 1.3w
Vol.115
16 小时前

开箱即用的 C 语言加密库。这是一个现代易用、跨平台的 C 语言加密库,为开发者提供全面的加密操作 API。它集成了多种加密、签名和哈希算法,适用于安全通信、数据保护等场景。

libsodium
Star 1.9w
Vol.114
1 天前

更快的系统信息查看工具。这是一个类似 neofetch 的命令行工具,可以在终端里概览系统的相关信息。它采用 C 语言编写,相较于 bash 写的 neofetch 更快,显示的信息包括操作系统、Shell、内核、CPU、GPU、内存等,目前支持 Linux、Android、FreeBSD、macOS 和 Windows 7+ 操作系统。

fastfetch
Star 5.8k
Vol.114
15 小时前

极简易用的 C 语言音频库。这是一个单文件、零依赖、跨平台的 C 语言音频库。它将各种主流操作系统的底层音频 API 封装成简单易用的接口,让你轻松实现音频播放、录制和处理等功能,适用于游戏引擎、实时通讯、嵌入式、离线批处理等场景。

#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;
}
8
nob.h
Star 2.3k
Vol.113
16 小时前

单文件的 C 语言构建系统。这是一个仅头文件的 C 语言库,支持通过 C 代码直接定义构建逻辑,实现自动化编译和构建,无需依赖外部工具,仅用 C 编译器即可完成项目构建。

Star 2.5k
Vol.113
1 个月前

轻量级多协议的缓存服务。这是一款专注于低延迟和低 CPU 占用的高性能缓存服务,无论单线程还是多线程均表现优异。它可作为独立服务或单文件库使用,支持 RESP、Memcache、HTTP、Postgres 等多种协议。

pogocache
10
tinyusb
Star 6.4k
Vol.113
19 小时前

让单片机快速实现 USB 功能的库。这是一个开源的嵌入式 USB Host/Device 协议库,专为各种微控制器(MCU)设计,提供高效、易用且可扩展的 USB 支持,兼容多种主流芯片平台。

tinyusb