下拉刷新
Catalog

HelloGitHub Vol.89

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.

C
1
barco
Star 1.5k
Fork 89
a year ago

Write a Linux Container from Scratch in C. This project relies solely on the fundamental Linux features and implements a Linux container using the C language, which can be used to learn more about the technical details of Linux containers and the kernel.

$ sudo ./bin/barco -u 0 -m / -c /bin/sh -a . [-v] 22:08:41 INFO ./src/barco.c:96: initializing socket pair... 22:08:41 INFO ./src/barco.c:103: setting socket flags... 22:08:41 INFO ./src/barco.c:112: initializing container stack... 22:08:41 INFO ./src/barco.c:120: initializing container... 22:08:41 INFO ./src/barco.c:131: initializing cgroups... 22:08:41 INFO ./src/cgroups.c:73: setting memory.max to 1G... 22:08:41 INFO ./src/cgroups.c:73: setting cpu.weight to 256... 22:08:41 INFO ./src/cgroups.c:73: setting pids.max to 64... 22:08:41 INFO ./src/cgroups.c:73: setting cgroup.procs to 1458... 22:08:41 INFO ./src/barco.c:139: configuring user namespace... 22:08:41 INFO ./src/barco.c:147: waiting for container to exit... 22:08:41 INFO ./src/container.c:43: ### BARCONTAINER STARTING - type 'exit' to quit ### # ls bin home lib32 media root sys vmlinuz boot initrd.img lib64 mnt run tmp vmlinuz.old dev initrd.img.old libx32 opt sbin usr etc lib lost+found proc srv var # echo "i am a container" i am a container
Star 2.2k
Fork 189
a year ago

Quake II Official Remastered Source Code. Quake II, released by id Software in 1997, is considered a classic first-person shooter by many players. This project is the official source code of Quake II re-released in 2023.

quake2-rerelease-dll
3
trurl
Star 3.2k
Fork 103
a year ago

Command Line Tool for Parsing and Manipulating URLs. This project is a new work by the author of cURL, and can be used to parse URLs, replace/extract/set parameters in the URLs.

trurl
C#
Star 2.3k
Fork 205
a year ago

Compact Windows Desktop Launcher Tool. This free tool named Geek Desktop features a minimalistic interface and supports full disk file search, one-click activation, custom wallpaper, and scheduled reminders, amongst other functionalities.

GeekDesk
Star 3.6k
Fork 165
a year ago

An Open Source miHoYo Game Launcher. This is a launcher that supports all miHoYo desktop games, including downloading games, tracking game time, switching accounts, saving gacha records, and offering Mihoyo community tool kits. It can run on Windows 10 and above operating systems.

Starward
C++
6
implot
Star 4.9k
Fork 535
a year ago

Real-time Drawing GUI Library. This project is a Dear ImGui drawing library that updates the image in real-time based on user interaction and data updates, supporting GPU acceleration, various drawing types, and mixed drawing capabilities. With just a few lines of code, you can integrate the functionality of real-time data visualization.

int bar_data[11] = ...; float x_data[1000] = ...; float y_data[1000] = ...; ImGui::Begin("My Window"); if (ImPlot::BeginPlot("My Plot")) { ImPlot::PlotBars("My Bar Plot", bar_data, 11); ImPlot::PlotLine("My Line Plot", x_data, y_data, 1000); ... ImPlot::EndPlot(); } ImGui::End();
implot
7
wslg
Star 1w
Fork 309
a year ago

Tool for Running Linux Graphical Applications on Windows. This project is an open-source tool by Microsoft that supports running Linux GUI applications on the Windows operating system. It offers a native and natural Linux GUI application experience, including functions such as cross-cutting and pasting between Windows and Linux applications. WSLg is built into systems Windows 10 and above, and can be launched directly via the wsl command.

wslg
Go
8
etree
Star 1.5k
Fork 177
a year ago

A More User-Friendly Lightweight Go Language XML Library. Although the Go language includes a built-in library for handling XML, it can be cumbersome to define structures according to the nesting levels when using it. This project is inspired by Python's ElementTree library, which allows for flexible reading and generation of XML documents without the need to define structures.

doc := etree.NewDocument() doc.CreateProcInst("xml", `version="1.0" encoding="UTF-8"`) doc.CreateProcInst("xml-stylesheet", `type="text/xsl" href="style.xsl"`) people := doc.CreateElement("People") people.CreateComment("These are all known people") jon := people.CreateElement("Person") jon.CreateAttr("name", "Jon") sally := people.CreateElement("Person") sally.CreateAttr("name", "Sally") doc.Indent(2) doc.WriteTo(os.Stdout)
Star 8.8k
Fork 2.1k
a year ago

Go Language Design Pattern Example Code. This project is the author's notes from reading the book 'Grounding Design Patterns', and has implemented the 23 design patterns mentioned in the book using the Go language.

10
ls-lint
Star 1.7k
Fork 32
a year ago

Tool for Checking Directory and File Naming Styles. This is a Lint tool for directories and filenames written in Go. It has few dependencies and is fast, allowing for custom detection rules and ignored directories through a yml configuration file, suitable for various scenarios such as Git Hooks, GitHub Action, and Docker Image.

ls: .js: snake_case .ts: snake_case | camelCase .d.ts: PascalCase .html: regex:[a-z0-9]+ ignore: - node_modules
ls-lint
Star 1.9k
Fork 176
a year ago

A Plug-and-Play WebP Server. WebP is an image format developed by Google to improve the speed of image loading. This project is a WebP server written in Go, which can transform images in formats such as JPG, PNG, BMP, SVG, etc., into the WebP format without the need for further development, effectively reducing the file size, saving bandwidth, and improving the speed of image loading.

webp_server_go
Java
12
Jailer
Star 2.9k
Fork 123
a year ago

A Powerful Database Data Extraction Tool. A tool for browsing database subsets and relational data, supporting browsing of databases according to inter-table relationships, and generating DML topological relationships, among other features. It can be used to extract the necessary database tables and data from a production database to support the testing of a complete business line.

Jailer
Star 1k
Fork 196
a year ago

A Minimalist Android Accounting App. This is an accounting app for Android that supports custom spending/income categories, timely reminders, budget settings, and expense statistics features.

OneAccount
14
triplea
Star 1.4k
Fork 397
a year ago

A Java-based Turn-based War Game. This is a free, open-source war chess game where players can simulate classic battles such as World War II and the Napoleonic Wars within the game, supporting Windows, Linux, and macOS operating systems.

triplea
JavaScript
Star 2.5k
Fork 304
a year ago

An Open-Source Sandbox MMORPG Game. This is a large-scale multiplayer online role-playing game (MMORPG) developed by the Global Illumination company, which has been acquired by OpenAI. Utilizing technologies such as React, Next.js, TypeScript, and WebAssembly, the game offers players the ability to explore the world, build houses, trade, and socialize within the game world. It is browser-based and requires no download to play.

biomes-game
16
docsify
Star 2.8w
Fork 5.7k
a year ago

Out-of-the-Box Documentation Website Generator. This project helps you quickly generate a documentation website that is ready to use without the need for building. You can publish it immediately after writing your documents. It supports full-text search, customizable themes, a rich set of APIs, Emoji, and other practical features.

docsify
Star 3.8k
Fork 593
a year ago

A Powerful Online Graphic Design Tool. An online poster and graphic design tool developed using Vue3, Vite2, Vuex, and ElementPlus technologies, which can be used to generate e-commerce share images, article long images, video/public account covers, etc.

poster-design
Star 9.4k
Fork 489
a year ago

Engaging JavaScript Programming RPG Game. In this game, you will command the warriors to fight against the enemies and rescue the captives by using JavaScript syntax, step by step moving towards the top of the tower to obtain the legendary JavaScript Sword.

warriorjs
19
WeHalo
Star 2k
Fork 370
a year ago

Refreshing WeChat Mini Program Version of a Blog. This project is a WeChat mini program based on the Halo blog backend, which allows you to easily transfer blog content to the WeChat mini program. It supports features such as personal business cards, blog post display, comments, article search, and custom navigation bar.

WeHalo
Python
Star 8.5k
Fork 794
a year ago

A Web Automation Tool Similar to Selenium. This is a Python-based web automation tool that supports Chromium-based browsers. It combines the functionalities of controlling the browser and sending/receiving requests into one unified interface with a consistent and concise API.

# 下载星巴克产品图 from DrissionPage import SessionPage from re import search # 以s模式创建页面对象 page = SessionPage() # 访问目标网页 page.get('https://www.starbucks.com.cn/menu/') # 获取所有class属性为preview circle的元素 divs = page.eles('.preview circle') # 遍历这些元素 for div in divs: # 用相对定位获取当前div元素后一个兄弟元素,并获取其文本 name = div.next().text # 在div元素的style属性中提取图片网址并进行拼接 img_url = div.attr('style') img_url = search(r'"(.*)"', img_url).group(1) img_url = f'https://www.starbucks.com.cn{img_url}' # 执行下载 page.download(img_url, r'.\imgs', rename=name)
Star 1.3k
Fork 55
a year ago

Build a Database from Scratch Using Python. This project aims to implement a relational database from scratch using Python, providing a better understanding of the internal structure of data. This database is intended for learning and practice, and should not be used in production environments.

22
nvitop
Star 4.9k
Fork 154
a year ago

NVIDIA GPU Process Monitoring Tool Similar to the 'top' Command. This is a monitoring tool for NVIDIA devices and processes, featuring a colorful interface with real-time updates on processes and device information, supporting process filtering, mouse control, signaling, and other functionalities.

nvitop
23
upiano
Star 623
Fork 21
a year ago

E-Piano Running in the Command Line. This is a small command line application of an electronic piano that is easy to install and convenient to run, supporting both mouse and keyboard operation modes.

upiano
Star 343
Fork 13
a year ago

Tool to view GitHub Action run status locally. A command-line tool that displays the running status of GitHub Actions for the current branch with just one command.

watchgha
Ruby
Star 1.6k
Fork 244
a year ago

A Website Teaching You How to Grow Crops. This is a knowledge base about crop cultivation, where you can find steps on how to grow plants like tomatoes, potatoes, strawberries, etc., and all of this is free of charge.

OpenFarm
Rust
26
rjvm
Star 1.5k
Fork 79
a year ago

A Miniature JVM Learning Project Written in Rust. This is a hands-on project written in Rust to replicate a JVM7. It has implemented a set of features including Java basic types, exception handling, stack trace, garbage collection, and parsing of .class files.

Star 4.6w
Fork 2k
a year ago

Lightweight, Super Fast and Good-looking Terminal. This is a terminal written in Rust, with a high level of aesthetics and compatible with various shells. It comes out of the box, customizable with various prompts, and is suitable for Windows, Linux, Android, and macOS systems.

starship
Swift
28
Mist
Star 3.1k
Fork 120
a year ago

Automated macOS Firmware Downloader. This tool can list all available macOS firmware/installer information, including name, version number, release date, and size.

Mist
Star 1.3w
Fork 1.1k
a year ago

An Elegant Swift Skeleton Screen Library. A skeleton screen is a technique that displays the approximate structure of a page when the data required has not yet completed loading. This Swift skeleton screen library is easy to get started with, has a user-friendly interface, and supports all UIView, custom animations, and other features.

SkeletonView
AI
Star 2.1w
Fork 2.2k
a year ago

Meta's Open Source Text-to-Music Library. This project can generate high-quality and high-fidelity audio and music based on text prompts, such as whistling in the wind or a pop dance tune suitable for a beach scene, with a very impressive generation effect.

audiocraft
31
Fooocus
Star 4.2w
Fork 6k
a year ago

A Plug-and-Play Image Generation Software. This project incorporates the strengths of Stable Diffusion and Midjourney in its design. It is simple to install and easy to operate, eliminating the need for complex parameter adjustments. Users can generate images comparable to Midjourney by simply entering prompt words. Supports local deployment and offline use, with the minimum configuration requirement being 8GB of memory and a 4GB Nvidia graphics card.

Fooocus
Star 8.5k
Fork 1.7k
a year ago

Xu Yida's Machine Learning Course. This project is a collection of open-source lecture notes and video course links on machine learning, probabilistic models, and deep learning provided by Professor Xu Yida from Hong Kong Baptist University (HKBU).

machine-learning-notes
Other
33
beepy
Star 503
Fork 38
a year ago

A Portable Linux Computer with a Full Keyboard. This is a board that combines a BlackBerry keyboard, a 400*200 LCD display, and a 2000mAh battery, priced at $79. By plugging in a Raspberry Pi Zero W, it instantly becomes a BlackBerry version of a Linux playground.

beepy
34
cloc
Star 2w
Fork 1k
a year ago

Tool for Counting Lines of Code. This is a tool that can count the number of whitespace lines, comments, and lines of code in different programming languages within the source code.

cloc
Star 1.8w
Fork 1.1k
a year ago

A Linux Server Security Guide. This is a guide focused on securing Linux servers in non-enterprise scenarios. Although not professional, it is sufficient for personal use.

Star 5.6k
Fork 938
a year ago

A Practical Linux Tutorial. Unlike comprehensive Linux tutorials, this project focuses on practicality, covering common Linux commands, system maintenance, software maintenance, and frequently used shell scripts.

37
weekly
Star 2.7k
Fork 106
a year ago

Independent Developer Product Monetization Weekly. A weekly publication covering subjects related to independent developers and product monetization.

Book
Star 9.2k
Fork 653
a year ago

Lean Side Project: How Programmers Can Gracefully Engage in Side Projects. This book expands on the content of 'How Programmers Can Earn Pocket Money Gracefully', introduces the lean startup process, optimizes it specifically for lean side project processes, and adds practical content on independent development monetization and online course monetization.

Star 5k
Fork 160
a year ago

What Happens When You Run a Program?. This is a mini-book about how a program runs, covering computer basics, operating systems, and how Linux loads executable files.

putting-the-you-in-cpu
Star 7.4k
Fork 493
a year ago

In-Depth Architecture Principles and Practices. With the rise of cloud computing, the focus of technical architecture has also evolved from cluster availability management to cloud-native and FinOps cost management. The book covers topics such as networking, containers, gateways, microservices and distribution, cloud-native, quality monitoring, and cost management, helping readers quickly grasp the technical architecture system in the cloud era.

theByteBook
Star 2.5k
Fork 275
a year ago

Ruan Yifeng's TypeScript Tutorial. This is a beginner-friendly open-source tutorial for TypeScript, covering the basic concepts and usage of TypeScript.

Catalog
  • C
  • C#
  • C++
  • Go
  • Java
  • JavaScript
  • Python
  • Ruby
  • Rust
  • Swift
  • AI
  • Other
  • Book