HelloGitHub Vol.82
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.
裸机编程指南。这是一份教你如何在不依赖 IDE 的情况下,进行单片机开发的教程。内容先是介绍了寄存器、向量表、启动代码、链接脚本等知识点,最后实现了一个带设备仪表盘的 Web 服务器。
Free and Lightweight Open Source PDF Reader. This is a free, compact, and fast Chinese Windows PDF reading tool that comes with all the necessary functions you need on a daily basis and features a simple and elegant interface. It supports viewing PDF, epub, mobi, cbz, CHM, and other file formats, striking the perfect balance.
DIY Open-source Smartwatch. This project is an open-source smartwatch based on Zephyr. The device includes a 240x240 resolution IPS TFT round screen and three buttons (back/page up/page down), supporting functions such as step counting, pulse oximeter, heart rate monitor, and Bluetooth.
Utility for Demonstrating Keyboard Key Operations. This is a tool that can display keyboard operation records in real-time on the desktop, commonly used in scenarios such as app demonstrations and recording tutorials, suitable for Windows 7 and above operating systems.
A Multi-functional Bilibili Video Downloader. This is a simple and easy-to-use Bilibili video download tool with a clean interface that is very convenient to operate. It supports batch downloading, audio and video extraction, waternarking removal, and more.
Write a Tetris Game in C# Under 8KB. The focus of this project is not to teach you how to write a Tetris game in C#, but to explain how to reduce the compiled C# Tetris program from an initial size of 65MB to a standalone application of only 8KB in size.
# To build the 4.7 MB version of the game dotnet publish -r win-x64 -c Release /p:Mode=CoreRT # To build the 4.3 MB version of the game dotnet publish -r win-x64 -c Release /p:Mode=CoreRT-Moderate # To build the 3.0 MB version of the game dotnet publish -r win-x64 -c Release /p:Mode=CoreRT-High # To build the 1.2 MB version of the game dotnet publish -r win-x64 -c Release /p:Mode=CoreRT-ReflectionFree # To build the 10 kB version of the game dotnet publish -r win-x64 -c Release /p:Mode=CoreRT-NoRuntime
一个文件的 C++ HTTP/HTTPS 库。这是一个用 C++11 写的仅头文件、跨平台的 HTTP/HTTPS 服务器端和客户端库,使用时十分方便,只需在代码中引入
httplib.h
#define CPPHTTPLIB_OPENSSL_SUPPORT #include "path/to/httplib.h" // HTTPS httplib::Client cli("https://hellogithub.com"); auto res = cli.Get("/periodical"); res->status; res->body;
RISC-V Simulator and Assembler Editor. This project can display the process of machine code execution on various micro-architectures in a graphical manner, which can be used to explore issues such as the impact of different cache designs on performance.
简单高效的 C++ 多媒体库。这是一个可用来简化游戏和多媒体应用开发的 C++ 库,因其上手门槛低和良好的生态,成为了众多 C++ 新手入门图形化开发的首选。
GitHub 开源的设计系统。由 GitHub 设计团队开源和维护的项目,包含了 GitHub 的界面设计原则、使用指南和开箱即用的 UI 组件。
Script Language for Converting Text to Charts. This project is a chart scripting language that can convert text into charts. You just need to describe the chart you want, and it will generate the corresponding image.
echo 'x -> y' > input.d2 d2 -w input.d2 out.svg
A Tool Similar to cURL but for gRPC. A command-line tool for interacting with a gRPC server, allowing you to easily request gRPC services, much like the cURL for gRPC.
# 安装 brew install grpcurl # 使用 grpcurl grpc.server.com:443 my.custom.server.Service/Method
一款云原生物联网开发框架。这是一个生产级别的物联网平台,它可以将物联网(IoT)设备,封装成 K8s 的最小的可部署的计算单元(pod),直接将设备的能力和数据通过 API 开放出来,让物联网应用的开发变得更加简单。
cd shifu # 在集群中安装 Shifu kubectl apply -f pkg/k8s/crd/install/shifu_install.yml
一起写作并建立一个社区。这是一个 Go 写的博客平台,除了能够创建基于 Markdown、极简的独立博客之外,还可以建立类似博客园的博客社区。
A Go-based Application Engine. With this project, one can quickly build a system from scratch in just a few minutes, suitable for developing interface services, management backends, data visualization platforms, and custom low-code platforms.
Cloud-Native Security Detection Platform. This project addresses security and governance issues in cloud-native environments in a non-intrusive manner. It supports security testing, vulnerability scanning, and one-click report retrieval for mainstream public and private cloud resources.
开源的智能移动云测平台。这是一个基于 Spring Boot+React 构建的云测服务,它部署简单开箱即用,支持在线管理测试设备、执行测试用例、测试结果可视化等功能。
目前最流行的图数据库。它是一款采用 Java 和 Scala 语言开发的原生图数据库,专属的查询语言 Cypher,能够直观且高效地查询和处理数据之间的关系。
A JavaScript Library for In-Browser Screen Capture. This project enables you to capture the entire web page or a portion of it within the browser. It operates by reading the DOM and styles to render the current page into a canvas image.
html2canvas(document.querySelector("#capture")).then(canvas => { document.body.appendChild(canvas) });
教你从零构建前端算法体系。学习算法不仅是为了面试,也是每个前端进阶必备的技能之一。该项目包含了前端的进阶算法、常见面试题、手写源码等,帮你构建完整的数据结构和算法的知识体系。
视觉上令人愉悦的番茄时钟。这是一款 Vue 写的拥有超高颜值的番茄计时器,支持自定义时间、回合数、提示音、桌面通知等功能。
能够将 HTML 和 CSS 转换为 SVG 的库。由 Vercel 团队开源的可根据 HTML 和 CSS 代码生成 SVG 图像的库。支持 JSX 语法,使用起来十分方便和顺手。
import satori from 'satori' const svg = await satori( <div style={{ color: 'black' }}>hello, world</div>, { width: 600, height: 400, fonts: [ { name: 'Roboto', data: robotoArrayBuffer, weight: 400, style: 'normal', }, ], }, )
强大的 JavaScript 函数库。该库提供了 100 多个实用的函数,包括常用的 map、filter、reduce、invoke 以及更专业的辅助函数,比如函数绑定、JavaScript 模板功能、创建快速索引等,让我们可以更加方便地在 JavaScript 中实现函数式编程。
// countBy _.countBy([1, 2, 3, 4, 5], function(num) { return num % 2 == 0 ? 'even': 'odd'; }); // 输出:{odd: 3, even: 2}
Tool for Identifying Common Security Issues in Python Code. This project is a Python code inspection tool produced by PyCQA, known for their open source contributions such as isort and flake8.
CPython 开发人员指南。这份指南来自 Python 官方,介绍了如何为 CPython 做贡献,适用于任何阶段的贡献者。
Django 使用姿势指南。这是一份 Django 编码风格指南,它来自于一线团队的多年经验总结,希望能够帮助你构建出更好的 Django 应用程序。
Numpy Exercise Book. This project contains 100 exercises and solutions about the commonly used data processing library Numpy in Python.
# How to sum a small array faster than np.sum? (★★☆) Z = np.arange(10) np.add.reduce(Z)
Python Data Stream Orchestration Platform. If you regard the programs for data acquisition, cleaning, and processing as separate tasks, this project can integrate these tasks into workflows, enabling their deployment, scheduling, and monitoring on a web platform.
from prefect import flow, task @task def say_hello(): print("Hello, World! I'm HelloGitHub!") @flow("Prefect Flow"): def h_flow(): say_hello() # run the flow! h_flow() # "Hello, World! I'm HelloGitHub!"
Command-line Data Visualization Tool Written in Ruby. This project transforms data into colorful charts within the terminal, supporting types such as bar charts, histograms, and box plots.
第三方的 ChatGPT 桌面应用。把 ChatGPT 放到你的桌面,支持快捷键、斜杠命令、划词搜索、导出记录等实用的功能,适用于 macOS、Windows、Linux 操作系统。
Git Command Line Tool with Interface. This project offers a terminal interface for git, allowing users to more smoothly utilize git. The interactive prompts mean you no longer need to memorize numerous git commands.
macOS Application Using Keyboard Instead of Mouse. This application allows users to operate their Mac computers using only the keyboard and supports two operational modes. Activation mode maps clickable positions on the screen to keyboard keys. Scrolling mode uses the HJKL keys to accomplish area scrolling.
Collection of Implementations of Deep Learning Papers. This is a collection implementing neural networks and related algorithms using PyTorch, with line-by-line comments included in the code.
Chinese Pre-trained Version of the OpenAI CLIP Model. This project, trained on a large-scale Chinese dataset (~200 million text-image pairs), offers several pre-trained models in various sizes and technical reports, enabling users to perform feature extraction of Chinese text and images with just a few lines of code.
import torch from PIL import Image import cn_clip.clip as clip from cn_clip.clip import load_from_name, available_models print("Available models:", available_models()) # Available models: ['ViT-B-16', 'ViT-L-14', 'ViT-L-14-336', 'ViT-H-14', 'RN50'] device = "cuda" if torch.cuda.is_available() else "cpu" model, preprocess = load_from_name("ViT-B-16", device=device, download_root='./') model.eval() image = preprocess(Image.open("examples/pokemon.jpeg")).unsqueeze(0).to(device) text = clip.tokenize(["杰尼龟", "妙蛙种子", "小火龙", "皮卡丘"]).to(device) with torch.no_grad(): image_features = model.encode_image(image) text_features = model.encode_text(text) # 对特征进行归一化,请使用归一化后的图文特征用于下游任务 image_features /= image_features.norm(dim=-1, keepdim=True) text_features /= text_features.norm(dim=-1, keepdim=True) logits_per_image, logits_per_text = model.get_similarity(image, text) probs = logits_per_image.softmax(dim=-1).cpu().numpy() print("Label probs:", probs) # 图文匹配概率 [[1.268734e-03 5.436878e-02 6.795761e-04 9.436829e-01]]
Tutorial on Writing a Deep Learning Inference Framework from Scratch. This tutorial guides you step-by-step to write a deep learning inference framework using C++. Drawing inspiration from the style and structure of Caffe, learners not only gain insights into the knowledge behind deep learning frameworks but also learn how to approach a moderately scaled C++ project.
A Tutorial on Building a CDN from Scratch. In order for you to learn how CDNs work in a realistic scenario, this tutorial will start by creating a single backend service and gradually expand to multiple nodes, simulate latency, and visualize a CDN service that is both testable and operable. Since the design of a CDN will involve knowledge points such as Nginx, Lua, Docker, Grafana, etc., a certain programming foundation is required to learn this tutorial.
Tutorial on Deploying a Complete Set of Services with K8s. This tutorial will teach you how to deploy a Kubernetes cluster and build a complete software development and deployment platform based on it, consisting of services such as Apollo, Jenkins, and Prometheus.
The Most Popular Raspberry Pi App Store. This is a completely free and open-source Raspberry Pi app store that is easy to install and use, with over 200 built-in applications, supporting 32-bit and 64-bit Raspberry Pi OS.
# 下载 git clone https://github.com/Botspot/pi-apps # 安装 ~/pi-apps/install
A Fully Open Source, Meticulously Crafted Chinese Sans Serif Font. This font is called 'Delighted Black'. Its overall character shape is narrow and slanted, with details incorporating a special style taken from hand-drawn calligraphy. It supports commonly used Chinese characters, Latin letters, Arabic numerals, and various punctuation marks.
Condensed Edition of 'Netty in Action'. This book is a condensed Chinese version of 'Netty in Action', designed to help you quickly grasp the essentials of Netty.
- C
- C#
- C++
- CSS
- Go
- Java
- JavaScript
- Python
- Ruby
- Rust
- Swift
- AI
- Other
- Book