HelloGitHub Vol.98
HelloGitHub shares interesting and beginner-friendly open source projects on GitHub, updated on the 28th of each month. Here you will find fun and beginner-level open source projects, open source books, practical projects, and enterprise-level projects, allowing you to quickly appreciate the charm of open source and develop an interest in it.
Compact Command Line Music Player. This is a lightweight command line music player designed for Unix-like systems that can play local music files. It is simple to use, resource-efficient, and starts up quickly, supporting multiple audio formats.
Lightweight Remote Real-Time CPU/GPU Profiler. This project is a tool for monitoring multi-thread activities on CPUs and GPUs. It provides a C file that can be easily integrated into projects and comes with a real-time monitoring web interface, allowing remote observation and analysis of program performance through a browser. Suitable for scenarios such as monitoring real-time operational performance of games and analyzing performance of mobile applications.
A 'Kitten' Running on the Windows Taskbar. This is a small utility written in C# that displays an animated kitten running on the Windows taskbar, which runs faster with the higher the CPU usage.
Free Image Compression Software. This is an image compression tool written in C++ with a simple Chinese interface. It supports lossless compression of JPG, PNG, and WebP formats, and is equipped with real-time preview and batch processing capabilities. In addition, it also provides clients for Windows, Linux, and macOS, as well as a web version that does not require installation.
High-Performance Lock-Free Concurrent Queue in C++. This project is a fast, lock-free, concurrent queue written in C++11, supporting multiple threads to perform producer and consumer operations simultaneously. It features the absence of locks and only requires a single header file, making it suitable for various scenarios that require high-performance concurrency processing.
#include "concurrentqueue.h" moodycamel::ConcurrentQueue<int> q; q.enqueue(25); int item; bool found = q.try_dequeue(item); assert(found && item == 25);
OBS Streaming Plugin to Display User Input Operations. This project is a plugin for live streaming that displays keyboard presses, mouse movements, and game controller button actions, suitable for OBS streaming software on Windows and Linux. It can be used in scenarios such as gaming live streams and educational demonstrations.
Open Source Internal Network Security Scanning Tool. This project is an internal network scanning tool developed using the Go language, offering one-click automated comprehensive vulnerability scanning. It is user-friendly and comprehensive, supporting functions such as port scanning, common server brute force attacks, web application vulnerability scanning, and NetBIOS sniffing.
A Go Language Library for Making Numbers and Time Easier to Understand. This is a Go language library that provides humanized numbers and time. By offering formatting functions, it helps developers convert figures such as size and time into a form that is more easily understandable by humans, such as file sizes, relative times, comma-separated numbers, and ordinals.
fmt.Printf("That file is %s.", humanize.Bytes(82854982)) // That file is 83 MB. fmt.Printf("This was touched %s.", humanize.Time(someTimeInstance)) // This was touched 7 hours ago.
Mac Performance Monitoring Tool Tailored for Apple Silicon. This project implements a tool similar to the top command with less than 1k lines of Go code. It can display real-time performance metrics of Apple M-series chips, including CPU and GPU usage, memory, network, and disk information.
Modern Terminal Text Editor. This project is a terminal-based text editor written in Go, which serves as an alternative to Nano. It is ready to use upon download, requires no configuration, and is cross-platform with support for multi-cursor editing, syntax highlighting, mouse operations, plugin extensions, and more, making it especially suitable for text editing tasks when remotely accessing servers via SSH.
Very Beautiful Terminal File Manager. This is a modern terminal file manager that provides an intuitive and beautiful interface for command-line file operations. It defaults to Vim-style shortcut operations and also supports plugin and theme customization.
Code Editor for Android Devices. This is a code editing tool specifically designed for Android devices. It is a lightweight web-based IDE with features such as instant preview, console, and a rich set of plugins, supporting a variety of programming languages like HTML, Python, Java, JavaScript, and more.
Private Cloud-based Bi-directional Linking Note Software. This is a cloud storage note software that supports private deployment. It allows you to save all your notes, images, and personal plans on your private server and achieve real-time synchronization across devices. The software provides features such as Markdown editing, bidirectional linking, full backup, web page conversion, multi-account permissions, and statistics, and is compatible with Windows, macOS, and web-based clients.
Java Library for Parsing SQL Statements. This project can read SQL statements and break them down into structured Java objects, enabling the parsing or dynamic generation of SQL statements with Java code, and supports SQL standards and mainstream relational databases.
String sqlStr = "select 1 from dual where a=b"; PlainSelect select = (PlainSelect) CCJSqlParserUtil.parse(sqlStr); SelectItem selectItem = select.getSelectItems().get(0); Assertions.assertEquals( new LongValue(1) , selectItem.getExpression()); Table table = (Table) select.getFromItem(); Assertions.assertEquals("dual", table.getName()); EqualsTo equalsTo = (EqualsTo) select.getWhere(); Column a = (Column) equalsTo.getLeftExpression(); Column b = (Column) equalsTo.getRightExpression(); Assertions.assertEquals("a", a.getColumnName()); Assertions.assertEquals("b", b.getColumnName()); }
Enterprise-Level Database Collaborative Development Platform. This project is a platform designed for collaborative database development and data management, specifically to enhance the efficiency of SQL development. It is built on Spring Boot and Electron, providing both web and desktop clients, with features such as SQL specification checking, change rollback, data lifecycle management, data desensitization, and operational auditing, compatible with various data sources including OceanBase, Oracle, MySQL, and Doris.
Open-Source File Sharing Platform. This project serves as an open-source alternative to the DocSend service, providing self-hosted and easy-to-use document sharing capabilities. It is built with Next.js and Tailwind CSS, allowing users to upload documents and receive an online accessible address for file content. It supports custom domain names and features like access tracking.
Open Source Project Management and Issue Tracking Platform. This project is an open-source system for managing projects, designed to streamline the project management process for teams. It is user-friendly and self-hostable, supporting issue tracking, cycle management, project breakdown, and analytical statistics, and can be used as an alternative to JIRA.
React Hooks Library for Data Fetching. This project is a React library designed to simplify the data fetching logic for developers. It supports automatic handling of data caching, revalidation, error retry, and more. For instance, it automatically requests the latest data when a user re-clicks or returns to a page.
import useSWR from 'swr' function Profile() { const { data, error, isLoading } = useSWR('/api/user', fetcher) if (error) return <div>failed to load</div> if (isLoading) return <div>loading...</div> return <div>hello {data.name}!</div> }
Vue 3-based Comment Component. This is a UI component based on Vue 3, providing functionalities such as commenting, content collapsing, replying to comments, and using emoticons, as well as components for catalog and search.
Easy-to-Integrate JavaScript File Upload Component. This is a lightweight JavaScript file upload component that provides a visually appealing user interface, supports the import of files from multiple sources, resumable file uploads, internationalization, as well as functionalities for previewing, editing, and multi-file uploading.
import React, { useEffect } from 'react' import Uppy from '@uppy/core' import Webcam from '@uppy/webcam' import { Dashboard } from '@uppy/react' const uppy = new Uppy().use(Webcam) function Component () { return <Dashboard uppy={uppy} plugins={['Webcam']} /> }
All-in-One Game Emulator on Android Devices. This multi-emulator, based on Libretro, enables you to play various retro games on Android devices. It offers features such as instant save states, local multiplayer, customizable buttons, and supports emulation of various gaming consoles including NES, GBA, 3DS, and PSP.
Browser Bookmark Management Tool with Built-in API Service. This is an open-source bookmark command-line management tool, which is lightweight, privacy-safe, and easy to use, supporting the import of bookmarks from mainstream browsers, automatic acquisition of bookmark information, cross-platform synchronization, and a powerful search function.
A Platform for Easy Management of Feature Switches and Configurations. This is an open-source, feature-rich feature flag and remote configuration platform designed for small and medium-sized teams. It is a web application built on Django REST framework for managing the enablement and remote configuration of application features, supporting A/B testing, multivariate testing, and organizational management. It is suitable for scenarios such as gradually rolling out new features, conducting market tests, and managing various environments.
Innovative Responsive Python Notebook. This project is a responsive notebook tailored specifically for Python, designed to automatically execute and update the dependent code cells upon interaction with the user interface, ensuring the consistency of code and output. It is stored as a pure Python file, facilitating management and execution, and supports being run as a script or deployed as an interactive web application.
Python library for high-dimensional data dimensionality reduction. This project is a Python library used to map high-dimensional data to low-dimensional spaces, aiding researchers in understanding complex datasets. Compared with t-SNE, it excels in preserving the global structure of the data, capable of efficiently performing high-dimensional to low-dimensional mapping, suitable for a variety of scenarios such as data visualization, feature extraction, and cluster analysis.
import umap from sklearn.datasets import load_digits digits = load_digits() mapper = umap.UMAP().fit(digits.data) umap.plot(mapper, labels=digits.target)
Your Personal Screen Memory Search Tool. This project is a screen recording tool designed specifically for Windows, offering search and replay functionalities. It records the screen content continuously while ensuring data security (no uploads, no internet connection), utilizing OCR and image recognition technologies, allowing users to easily search for and review the history of screen activities.
Background Rust Code Linter Tool. This is a code linting tool specially designed for the Rust language. It operates in the background and provides developers with real-time feedback on warnings, errors, and test failures in their Rust code, allowing developers to focus on writing code instead of frequently running check commands manually.
Command-line Tool for Viewing Bandwidth Usage. This is an open-source command-line network bandwidth monitoring tool that can display the status of network usage in real-time, including information such as processes, connections, and remote addresses.
Practical Rust Language Exercises. This project provides a multitude of practical Rust exercises to help newcomers learn and get started with the Rust language. In addition to a vast collection of exercise problems and solutions, it also supports online editing and execution of Rust code.
Tool for Symbolizing macOS/iOS Crash Reports. This is a simple Mac application that can convert hexadecimal addresses from macOS/iOS crash reports to functions and line numbers in the source code, assisting developers in analyzing the cause of application crashes and supporting crash and ips format crash reports.
Open-Source AI Face Swapping and Enhancement Tool. A robust tool for face swapping and enhancement, capable of replacing faces in images or videos with another person's face, improving the clarity of faces and backgrounds, and also providing a user-friendly web interface (WebUI) as well as low-barrier CPU processing options.
Tool for Simplified API Calls of Large Models. This project enables the unification of various AI large model and service interfaces into the OpenAI format, thereby simplifying the management and switching tasks between different AI services or large models. Additionally, it supports functions such as setting budgets, restricting request frequencies, managing API Keys, and configuring OpenAI proxy servers.
from litellm import completion import os ## set ENV variables os.environ["OPENAI_API_KEY"] = "your-openai-key" os.environ["COHERE_API_KEY"] = "your-cohere-key" messages = [{ "content": "Hello, how are you?","role": "user"}] # openai call response = completion(model="gpt-3.5-turbo", messages=messages) # cohere call response = completion(model="command-nightly", messages=messages) print(response)
Tutorial on Implementing Llama 3 from Scratch. This project helps people deeply understand how Large Language Models (LLMs) work by building Llama 3 layer by layer. The author uses the PyTorch framework to implement loading model weights, text tokenization, model configuration, and step-by-step implementation of key components in the Transformer model.
Free Temporary Email Service Setup. This project utilizes CloudFlare's free services to provide a fully functional temporary email service, supporting features such as receiving and sending emails, access passwords, automatic replies, and viewing attachments.
Linux Kernel Experiments. This project is the Chinese translation of the 'Linux Kernel Teaching' course from the University of Bucharest, suitable for programmers interested in Linux kernels. The course content is divided into two parts: lectures and experiments. The experiments are conducted in a virtual machine based on QEMU, allowing participants to experience the development, compilation, deployment, and execution process of the Linux kernel firsthand.
Out-of-the-box Resume Templates. This project provides resume templates for Obsidian and Typora, which are based on the Markdown format, easy to edit, and offer a WYSIWYG (What You See Is What You Get) experience. The design is minimalist yet formal, and with the help of the editors, you can directly export resumes in PDF format.
Low-Cost Open Source Smartwatch. This is a smartwatch project with a manufacturing cost of only 80 yuan. It not only provides basic watch functions but also supports sleep mode, Bluetooth, step counting, card holder, compass, and heart rate monitoring, among other features.
Mobile Number Geographic Information Library. This project compiles over 400,000+ Chinese mobile number segments and geographic information, all sourced from public data available online.
The Large Language Models. This is an open-source book prepared for programmers and students who want to get started with large model technology. The content covers not only the basic principles and key technologies of large models but also provides a code tool library and large models to help readers quickly get started and practice.
The 'Ray Tracing in One Weekend' Book Series. This is a set of introductory books on ray tracing technology, teaching you to implement a ray tracer in C++. Ray tracing is a rendering technique in computer graphics that produces photorealistic images by simulating the behavior of light within a virtual scene.
- C
- C#
- C++
- Go
- Java
- JavaScript
- Kotlin
- Python
- Rust
- Swift
- AI
- Other
- Book