下拉刷新

Here you can read past volumes of HelloGitHub Monthly by category. You are currently viewing the HelloGitHub C collection.

Star 1.4k
Vol.119
a month ago

Tiny Free Image Viewer Smaller Than Images.This is a lightweight Windows image viewer written in C language, allowing you to hardly feel any waiting. It is small in size, quick to launch, has extremely fast image loading and switching speeds, and supports mainstream image formats such as JPG, PNG, WEBP, BMP, GIF, ICO, TIF, etc.

voidImageViewer
2
Zen-C
Star 3.9k
Vol.119
a day ago

Writing C Code Like a High-Level Language.This is a modern systems programming language that allows you to write code like a high-level language but run it like C. It compiles to GNU C/C11 code, is compatible with the C ABI (Application Binary Interface), supports seamless integration into existing C language ecosystems, and enhances the development experience while maintaining the execution efficiency of C.

import "std/net/tcp.zc"

fn main() {
    "Echo Server listening on :8080";
    let listener = TcpListener::bind("127.0.0.1", 8080).unwrap();

    loop {
        // Accept new connections
        let stream = listener.accept().unwrap();
        let buf: char[1024];
        
        while true {
            let n = stream.read(&buf[0], 1024).unwrap();
            if n == 0 { break; }
            stream.write(&buf[0], n);
        }
    }
}
Zen-C
3
clifm
Star 1.6k
Vol.118
4 days ago

Pure Command-Line File Manager.This is a command-line file management tool written in C. It is more efficient than Shell and lighter than TUI tools. With no complex menus or graphical interfaces, users can quickly perform file operations by entering simple commands, and it supports features like numerical indexing of items, auto-completion, syntax highlighting, and file preview.

clifm
Star 622
Vol.117
3 months ago

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.

Hexecute
Star 3.2k
Vol.117
a month ago

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.

TaskExplorer
6
sj.h
Star 1.5k
Vol.116
5 months ago

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;
}
7
iotop
Star 634
Vol.115
a month ago

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.

iotop
Star 1.3w
Vol.115
5 days ago

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.

libsodium
Star 2w
Vol.114
a day ago

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.

fastfetch
Star 6.4k
Vol.114
14 hours ago

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;
}