Skip to content

Latest commit

 

History

History
327 lines (239 loc) · 28.8 KB

HelloGitHub105.md

File metadata and controls

327 lines (239 loc) · 28.8 KB

HelloGitHub Vol.105

Passion is the best teacher. HelloGitHub inspires your interest in programming!

Table of Contents

Click the 「Table of Contents」 icon at the top-right corner to open the navigation and enjoy a better reading experience.

Content

The content of this issue is as follows|Updated on the 28th of each month

C

1、fluent-bit: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.

2、write-a-hash-table: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.

C#

3、ArchiSteamFarm:Open-source Steam Card Collection Tool. This is a tool developed with C#, capable of managing multiple Steam accounts and automatically collecting trading cards without the need to install or run the Steam client. It supports features such as VAC immunity and trading, and is compatible with Windows, Linux, and macOS systems.

4、qttabbar:A tool to add tab functionality to Windows File Explorer. This is a small utility developed in C# that allows users to utilize tab functionality within Windows Explorer, supporting the opening and management of multiple folders simultaneously in the form of tabs.

C++

5、love:Absolutely Free 2D Game Engine. This is a free, open-source, and commercially usable 2D game development framework that supports the development of cross-platform 2D games using Lua language, compatible with Windows, macOS, Linux, Android, and iOS platforms.

6、WLED:Wireless Control LED Strip. This project is a Web server running on ESP32 and ESP8266 that enables WiFi control of LED strip colors and effects, supporting 100 special effects, 50 color palettes, and 250 user-defined presets among other features.

CSS

7、latex-css:CSS Library for LaTeX Document Style. This is a CSS styling library that can make your website resemble a LaTeX document, supporting tags for theorems, definitions, lemmas, and proofs, as well as optional class names for authors, subtitles, abstracts, and more.

Go

8、gofakeit:Go Library for Rapid Generation of Fake Data. This project is a Go language library for generating various types of fake data, supporting the random generation of names, addresses, phone numbers, and dates. It does not support the generation of Chinese fake data by default, but you can extend or adjust the generation logic through customization.Shared by @DeShuiYu

gofakeit.Name()             // Markus Moen
gofakeit.Email()            // alaynawuckert@kozey.biz
gofakeit.Phone()            // (570)245-7485
gofakeit.BS()               // front-end
gofakeit.BeerName()         // Duvel
gofakeit.Color()            // MediumOrchid
gofakeit.Company()          // Moen, Pagac and Wuckert
gofakeit.CreditCardNumber() // 4287271570245748
gofakeit.HackerPhrase()     // Connecting the array won't do anything, we need to generate the haptic COM driver!
gofakeit.JobTitle()         // Director
gofakeit.CurrencyShort()    // USD

9、hertz:ByteDance Open Source Go Microservice HTTP Framework. This project is a high-performance, easily extensible Web framework for the Go language developed by the CloudWeGo team, suitable for building RESTful APIs, microservices, and Web applications requiring high throughput. Internally at ByteDance, Hertz has been widely applied and has proven to be stable and reliable.Shared by @DeShuiYu

10、lima:Easily Run Linux Virtual Machines on macOS. This is a tool for creating and managing Linux virtual machines on macOS. It utilizes QEMU and macOS native virtualization technology to provide a ready-to-use, lightweight Linux virtual machine environment. It supports running a variety of Linux applications and tools, as well as containers such as Docker, Podman, and K8s.

# 安装
brew install lima
# 启动
limactl start
# 运行 Linux 命令
lima sudo apt-get install -y neofetch
lima neofetch
# 运行容器
lima nerdctl run --rm hello-world
kubectl apply -f ...

11、primitive:Generate Images with Geometric Shapes. This project is a command-line tool developed in Go language that can convert any image into an image composed solely of a single geometric shape through image processing algorithms.

12、zap:Fast, Structured Go Logging Library. This project is a high-performance logging library developed by Uber, designed for scenarios requiring fast, structured logging. Compared to other Go language logging libraries, zap's performance is superior, especially in high-concurrency environments where logs need to be recorded frequently.Shared by @两双筷子sqldc

logger, _ := zap.NewProduction()
defer logger.Sync() // flushes buffer, if any
sugar := logger.Sugar()
sugar.Infow("failed to fetch URL",
  // Structured context as loosely typed key-value pairs.
  "url", url,
  "attempt", 3,
  "backoff", time.Second,
)
sugar.Infof("Failed to fetch URL: %s", url)

Java

13、async-profiler:Java Performance Analysis Tool. This is a low-overhead Java sampling profiler that can be used for performance analysis of Java applications. It helps developers track CPU-intensive code paths, pinpoint memory leaks, and analyze thread lock contention and synchronization issues between threads.Shared by @塔咖

14、javaparser:Powerful Java Code Parsing Library. This is a pure Java implementation parsing library designed for parsing, analyzing, and generating Java code. It can parse Java code into Abstract Syntax Trees (AST), supporting versions from Java 1.0 to Java 21. It can be used for developing code analysis tools, refactoring tools, compilers, etc.

15、kestra:Event-driven Declarative Orchestration Platform. This is an event-driven orchestration platform developed in Java, designed to simplify scheduled and event-driven workflows. It provides an intuitive Web interface, built-in code editor, and hundreds of plugins, allowing users to easily build reliable workflows with YAML code. It supports orchestrating microservices, batch tasks, ad-hoc scripts, SQL queries, data synchronization, and more.Shared by @IZRINO

JavaScript

16、Dexie.js:Lightweight IndexedDB Library. This is a lightweight JavaScript library that encapsulates the native IndexedDB API of browsers, making it easier to store and query data in client-side browsers, and supports features like storing large amounts of data, transactions, and indexing.

const db = new Dexie('MyDatabase');

// Find some old friends
const oldFriends = await db.friends
    .where('age').above(75)
    .toArray();

// or make a new one
await db.friends.add({
    name: 'HelloGitHub',
    age: 25,
    street: 'East 13:th Street',
    picture: await getBlob('HelloGitHub.png')
});

17、gitstars:Your GitHub Star Manager. This is a tool for managing starred projects on GitHub, supporting the categorization of projects based on tags and programming languages.Shared by @cfour

18、jitsi-meet:Open Source Video Conferencing Platform. This is a video conferencing platform built based on WebRTC, providing high-definition audio and video quality, supporting private chats, raising hands, voting, and virtual backgrounds among various features, and is compatible with all mainstream browsers and mobile platforms.

19、mermaid:Draw Charts with Markdown-like Syntax. This is an open-source chart drawing tool that supports generating various types of charts, such as flowcharts, sequence diagrams, and Gantt charts, through a syntax similar to Markdown.

20、semantic-release:Automated Version Management and Release Tool. This is an automated version management and release tool developed based on Node.js, designed to simplify the project release process through semantic version control (Semantic Versioning). It automatically derives version numbers and generates corresponding change logs by analyzing Git commit messages.

Kotlin

21、ChinesePinyin-CodeCompletionHelper:JetBrains Plugin Supporting Pinyin Input Method Auto-completion. This is a plugin designed specifically for the JetBrains series of IDEs, supporting code completion functions for both Pinyin and Wubi input methods.

Python

22、grip:GitHub README File Local Preview Tool. This is a tool for local preview of GFM (GitHub Flavored Markdown) files. It uses Flask and the GitHub Markdown API to render and display Markdown files with effects identical to those on GitHub in a local environment.

$ cd myrepo
$ grip
 * Running on http://localhost:6419/

23、ha_xiaomi_home:Xiaomi's Open Source HA Plugin. This project is an open-source Home Assistant integration plugin developed by Xiaomi, enabling seamless integration of Xiaomi IoT smart devices with Home Assistant. It supports device discovery, status synchronization, remote control, and other features.Shared by @魔羽Magic

24、pex:Python Project Packaging Tool That You'll Wish You Knew Earlier. This is an open-source Python project packaging tool designed specifically for cross-environment deployment and deployment scenarios where access to the public internet is not available. It can package Python projects and all their dependencies, even the Python interpreter (optional), into a single executable file (.pex), allowing developers to run Python programs directly without the need to install a runtime environment, and supports Linux and macOS systems.

$ pex "uvicorn[standard]" -c uvicorn --inject-args 'example:app --port 8888' -ohellogithub-app.pex
$ ./hellogithub-app.pex
INFO:     Started server process [2014]
INFO:     Waiting for application startup.
INFO:     ASGI 'lifespan' protocol appears unsupported.
INFO:     Application startup complete.
INFO:     Uvicorn running on http://127.0.0.1:8888 (Press CTRL+C to quit)
^CINFO:     Shutting down
INFO:     Finished server process [2014]

25、runlike:A Tool for Quickly Obtaining Docker Container Startup Commands. This is a tool for parsing running containers, capable of automatically generating the corresponding 'docker run' startup commands. It can extract configuration information from containers, including port bindings, volume mappings, environment variables, network settings, etc., making it suitable for scenarios requiring replication, debugging, or migration of containers.Shared by @猎隼丶止戈reNo7

$ runlike -p redis

docker run \
    --name=redis \
    -e "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" \
    -e "REDIS_VERSION=2.8.9" \
    -e "REDIS_DOWNLOAD_URL=http://download.redis.io/releases/redis-2.8.9.tar.gz" \
    -e "REDIS_DOWNLOAD_SHA1=003ccdc175816e0a751919cf508f1318e54aac1e" \
    -p 0.0.0.0:6379:6379/tcp \
    --detach=true \
    myrepo/redis:7860c450dbee9878d5215595b390b9be8fa94c89 \
    redis-server --slaveof 172.31.17.84 6379

26、viztracer:Out-of-the-box Python Performance Analysis Tool. This is an efficient and easy-to-use Python program performance analysis tool that helps developers debug code and analyze performance bottlenecks. It is optimized for performance tracking, minimizing the performance impact on the analyzed program as much as possible, and supports timeline tracking, multi-process analysis, and modularized tracking, generating intuitive and interactive analysis reports.Shared by @孤胆枪手

# 安装
pip install viztracer
# 生成分析报告
viztracer my_script.py arg1 arg2
# 可视化查看报告
vizviewer result.json 

Rust

27、himalaya:Command-line Email Management Tool. This is a command-line email client developed with Rust, supporting multiple accounts, email sending and receiving, various email protocols (such as IMAP and SMTP), and PGP encryption features.

28、zoxide:A Smarter cd Command. This is an efficient cd command tool written in Rust, inspired by z and autojump. It can automatically sort directories based on user access frequency, quickly locate the most likely target directory, and supports fuzzy matching and interactive selection.Shared by @IZRINO

Swift

29、ConfettiSwiftUI:A Swift Library for Confetti Animation Effects. This is a Swift library designed for adding confetti animation effects, supporting custom paper shapes, explosion radius, and angles.

30、MarkEdit:Minimalist Markdown Editor Designed for macOS. This is a free and open-source Markdown editor for macOS, with a small file size of only 3 MB. It offers a clean and refreshing interface along with a writing-focused editing environment. The author believes that Markdown syntax is very intuitive, hence no Markdown preview feature is provided.

AI

31、garak:Open Source LLMs Vulnerability Scanner. This project is an open-source tool developed by NVIDIA for scanning vulnerabilities in Large Language Models (LLMs). It supports detecting potential security issues and adverse behaviors from LLMs, including hallucination, data leakage, prompt injection, erroneous messages, generation of toxic content, and jailbreaking.

32、letta:Development Framework for Injecting Memory Ability into LLM Applications. This project is a Python framework for building LLM applications with memory capabilities, supporting the creation of intelligent agents with long-term memory and persistent state, and is capable of integrating various LLM API services.

33、MagicMirror:Zero-threshold AI Face Swap Application. This is a lightweight, ready-to-use AI face-swapping tool that requires no GPU and can be used offline. Easily try on new looks (hairstyles, outfits, etc.) with just one click.Shared by @Del

34、vllm:More Efficient LLMs Inference and Service Engine. This is a highly efficient and user-friendly large language model inference engine, specifically designed to address issues such as slow inference speeds and low resource utilization. It is based on PyTorch and CUDA, and incorporates memory optimization algorithms (PagedAttention), computational graph optimization, and model parallelization techniques to significantly reduce GPU memory usage and fully leverage multi-GPU resources to enhance inference performance. At the same time, vLLM is seamlessly compatible with HF models. It supports efficient operation on a variety of hardware platforms such as GPUs, CPUs, and TPUs, suitable for real-time question answering, text generation, and recommendation systems.Shared by @Caleb

from vllm import LLM

prompts = ["Hello, my name is", "The capital of France is"]  # Sample prompts.
llm = LLM(model="lmsys/vicuna-7b-v1.3")  # Create an LLM.
outputs = llm.generate(prompts)  # Generate texts from the prompts.

35、zerox:Convert PDF to Markdown using Visual Models. This project is based on a visual model API service that provides the functionality to convert PDF documents into Markdown. The principle involves first converting the original file (such as pdf, docx) into an image, then sending the image to the visual model for processing, and finally summarizing all the results to generate a complete Markdown file.

import path from "path";
import { zerox } from "zerox";

const result = await zerox({
  filePath: path.resolve(__dirname, "./hellogithub.pdf"),
  openaiAPIKey: process.env.OPENAI_API_KEY,
});

Other

36、awesome-low-level-design:A Collection of Learning Resources for System Detailed Design. This is a collection of resources to help developers learn and master Low-Level Design (LLD), including the implementation details, sample codes, and interface definitions of various systems, which is very suitable for preparing for interviews and improving technical skills.

37、bocker:Docker Implemented with Only a Hundred Lines of Shell. This project implements the basic functionality of Docker using approximately 100 lines of Bash script, suitable for learning how to achieve container core functions with a simple scripting language.

38、docker-xiaoya:One-click Deployment of Alist+Emby+Jellyfin Services. This project offers a one-click solution for deploying Alist, Emby, and Jellyfin services, helping you easily build a complete home multimedia center, supporting platforms such as Linux, macOS, Windows, etc.

39、domain-driven-hexagon:Best Practices for Learning Domain-Driven Design and Hexagonal Architecture. This is a sample project that integrates Domain-Driven Design (DDD) with Hexagonal Architecture, aimed at assisting developers in understanding how to design high-quality, scalable, and maintainable applications.

40、Racer:DIY Open Source Mini Racing Car. This project is a small racing car based on ESP32-H2, only about five to six centimeters in size. It can recognize colors and react accordingly (neural network), and also supports keyboard control.Shared by @孤胆枪手

『Previous』 | Feedback | 『Next』


👉 Submit open-source project! 👈

Sponsor


UCloud
超值的GPU云服务

CDN
开启全网加速

OpenIM
开源IM力争No.1

Apifox
比 Postman 更强大

Disclaimer

Creative Commons License
This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.