Interest is the best teacher.HelloGitHub Get you interested in programming!
synopsis
HelloGitHub Share interesting, entry-level open source projects on GitHub.
/521xueweihan/HelloGitHub
Here are real-world projects, introductory tutorials, black technology, open source books, open source projects of large factories, covering a variety of programming languages Python, Java, Go, C/C++, Swift ... Let you feel the charm of open source in a short period of time and become interested in programming!
The following is the content of this issue|Every month28 bug fix
C Projects
1、rawdrawandroid: Develop Android apps in C only. This is an Android application development framework that allows developers to develop Android applications using only C and Make without Java. It is lightweight and cross-platform, supports OpenGL ES, gyroscope, multi-touch and Android keyboard, and can directly access USB devices.
2、taisei: Free and open source shooting game in the Oriental Project series. This project is a pop-up shooter based on the Oriental Project worldview, with an independent and original storyline, music and gameplay mechanics. The game, called "Tessie", is developed in C11, SDL2 and OpenGL, is completely free and open source, and is supported on Windows, Linux, macOS and Chrome browsers.
C# Project
3、Bulk-Crap-UninstallerWindows Uninstaller: Free Windows application uninstaller. This is a Windows software uninstaller developed in C# to quickly remove a large number of unwanted applications. It's completely free, out-of-the-box, and supports batch and force uninstallation, cleaning up residual files, detecting hidden or protected registered apps, and much more. Although designed for IT professionals, its simple default settings make it easy for anyone to get started. From@peregrinefalcon,stopgapreNo7 sharing
4、Macro-DeckStream Deck: A tool to turn your phone into a Stream Deck. This project turns cell phones, tablets, and other devices with browsers into remote customizable keypads similar to Stream Deck, enabling one-click execution of single- or multi-step actions for scenarios such as live streaming and streamlining daily tasks.
C++ project
5、aria2: A super-fast command line download tool. This cross-platform command line download tool is developed in C++ and supports HTTP(S), FTP, SFTP, BitTorrent and other protocols. It is easy to use, small in size, fast in download speed, and provides features such as running in the background, speed limiting, segmented downloads, and BitTorrent extensions. From@Liu Ruihua sharing
6、fast_float: A C++ number parsing library for speed and accuracy. This project is a C++ library for fast parsing of numeric strings, implementing a function similar to the from_charts function. It is an extremely fast, header-only library, several times faster than the standard library. It supports parsing strings of float, double, and integer types, and has been used in well-known projects such as Chromium, Redis, and LLVM.
#include "fast_float/fast_float.h"
#include <iostream>
int main() {
const std::string input = "3.1416 xyz ";
double result;
auto answer = fast_float::from_chars((), ()+(), result);
if( != std::errc()) { std::cerr << "parsing failure\n"; return EXIT_FAILURE; }
std::cout << "parsed the number " << result << std::endl;
return EXIT_SUCCESS;
}
7、mame: Open source arcade emulator. This is an emulator that supports a huge number of arcade games. It realizes the function of running various retro software on your computer by simulating multiple hardware platforms. Not only supports arcades, but also old computers and game consoles.
Go Project
8、beszel: A lightweight and highly visual Docker monitoring platform. This is a lightweight server monitoring platform that includes Docker statistics, historical data and alerts. It has a friendly web interface, is easy to configure, works out-of-the-box, and supports automatic backups, multiple users, OAuth authentication, and API access.
9、envd: An efficient tool for building AI development environments. This is a command line tool that provides a reproducible development environment for AI/ML projects. With a simple configuration language and commands, you can quickly create container-based development environments that support remote builds, dependency caching, and importing remote repositories.
10、gophish: Open source phishing platform. The project provides an out-of-the-box phishing platform that can be used to simulate phishing attacks . It has a friendly Web management background , support for email templates , batch email , website cloning and data visualization , suitable for enterprise security training and penetration testing scenarios.
11、opentofu: An open source solution for realizing Infrastructure-as-Code. This project is an open source Infrastructure-as-Code tool focused on automating the creation, management and deployment of local and cloud service infrastructure. As a fork of Terraform, it is community-driven and supports the use of high-level configuration syntax to describe infrastructure, generate execution plans, and build resource dependency graphs to reduce human error and automate complex changes. From@Liu Ruihua sharing
12、photoview: A minimalist photo management platform. This is a web app for building your own cloud albums with an intuitive user interface and rich features that support automatic photo organization, thumbnail generation, shared albums, EXIF parsing, and multi-user management. An iOS app is also available for easy access on mobile. From@Liu Ruihua sharing
Java Project
13、GoGoGo: Open source Android virtual positioning application . The project is based on the Android debugging API and Baidu Maps implementation of the virtual positioning tool , without ROOT privileges to modify the geographic location . It supports location search and manually enter coordinates , and provides a freely movable joystick to simulate displacement .
14、karate: Open source API automated testing framework. This is a Java-based API testing framework , can be seamlessly integrated with Spring Boot, Maven and other Java ecosystem . It integrates API test automation , simulation, performance testing and UI automation and other functions , support the use of Cucumber-like syntax to write test cases , and provides a cross-platform executable file , even if the Java is not familiar with can easily get started .
JavaScript Project
15、icones: Minimalist icon search site. This is a site for quickly finding various icons, with support for categorized filters and multi-select mode. Users can package selected icons as fonts or download them directly in SVG format.
16、media-chrome: A library of components for building modern web player interfaces. This is a library for customizing web audio and video player interfaces, compatible with various JavaScript frameworks. It is highly customizable and allows developers to easily adjust the appearance and functionality of the components, supporting features such as subtitles, cast, shortcuts, multiplier, preview thumbnails, mobile and mute buttons.
<media-controller audio>
<audio
slot="media"
src="xxxxxx"
></audio>
<media-control-bar>
<media-play-button></media-play-button>
<media-time-display showduration></media-time-display>
<media-time-range></media-time-range>
<media-playback-rate-button></media-playback-rate-button>
<media-mute-button></media-mute-button>
<media-volume-range></media-volume-range>
</media-control-bar>
</media-controller>
17、Moe-Counter: Cute website counter. This project is a counter for counting the number of page visitors. It is not only easy to use, but also provides a variety of cute style themes that users can choose according to their personal preferences.
18、piscina: Flexible and efficient thread pools. This project is a high-performance Node Worker thread pool written in TypeScript, designed to simplify multithreaded programming. It provides an easy-to-use API that supports inter-thread communication, dynamic resizing of the thread pool, canceling tasks, setting memory limits, and asynchronous task tracking.
const path = require('path');
const Piscina = require('piscina');
const piscina = new Piscina({
filename: (__dirname, '')
});
(async function() {
const result = await ({ a: 4, b: 6 });
(result); // Prints 10
})();
19、swapy: A library for easily implementing drag-and-swap layouts. This project can convert any layout into a form that can be dragged and swapped, which can be realized with just a few lines of code. It supports setting up interactive animations and can be used in React, Vue, Svelte and other frameworks for various scenarios that require interactive layouts.
import { createSwapy } from 'swapy'
const container = ('.container')
const swapy = createSwapy(container, {
animation: 'dynamic' // or spring or none
})
// You can disable and enable it anytime you want
(true)
Kotlin Project
20、etchdroid: A tool to make a USB boot disk on your cell phone. This is an open source Android application designed for making OS USB boot disks on cell phones. It doesn't need ROOT permission to write OS image to USB device, supports many systems such as Ubuntu, Raspberry Pi, etc. It is suitable for making boot USB disk when you can't use computer.
21、KeyMapper: Android key remapping app. This is a free and open source Android app that allows you to customize the keys, fingerprints and gestures of your Android device. It does not require ROOT privileges, supports Bluetooth and wired keyboards, and provides a flexible key remapping experience.
Python Project
22、backtrader: Python quantitative trading backtesting framework. The project is a backtesting library written in Python and designed for developing and testing trading strategies. It can extract data from CSV files, online data sources and pandas, and supports such features as running multiple strategies synchronously and generating visual charts of trading strategies. More than 100 built-in indicators, including trend, volume and volatility indicators.
from datetime import datetime
import backtrader as bt
class SmaCross():
def __init__(self):
sma1, sma2 = (period=10), (period=30)
crossover = (sma1, sma2)
self.signal_add(bt.SIGNAL_LONG, crossover)
cerebro = ()
(SmaCross)
data0 = (dataname='MSFT', fromdate=datetime(2011, 1, 1),
todate=datetime(2012, 12, 31))
(data0)
()
()
23、core: Open source smart home platform. This is a smart home platform written in Python that aims to integrate smart devices from different brands to provide a personalized home automation experience. It solves the problem of poor interoperability of traditional systems, allowing users to freely control and link Apple HomeKit, Mijia, Aqara, Graffiti and other devices on the same platform, greatly enhancing the flexibility and convenience of the smart home. Suitable for users who wish to break the limitations of a single platform, especially DIY smart home enthusiasts in pursuit of cost-effective. From@Infernal Bells sharing
24、paperless-ngx: A tool for digitizing and archiving paper documents. This is a Django-based document management system that converts paper documents into searchable online archives. Unlike ordinary scanners that turn physical books into hard-to-search images or PDFs, it electronically converts them into an easy-to-search format through a document scanner.
25、pipreqs: A tool for quickly generating dependency files for Python projects. This program generates files based on import statements in Python projects. It automatically recognizes the libraries used in the project and generates a list of dependencies without installing them.
26、pokeapi: API service for Pokémon data. This is a Pokémon Data RESTful API service built on Django, providing developers with a comprehensive Pokémon database, including details on Pokemon moves, attributes, skills and evolution information.
Rust Project
27、insta: A snapshot test library for Rust. This is a snapshot test library for Rust projects, especially for scenarios where reference values are very large or change frequently. It provides a VSCode plugin and command line tools. When a test fails due to a reference value change, you can use the review command to view the problem and update the snapshot (reference value) with one click to quickly pass the unit test.
fn split_words(s: &str) -> Vec<&str> {
s.split_whitespace().collect()
}
#[test]
fn test_split_words() {
let words = split_words("hello from the other side");
insta::assert_yaml_snapshot!(words);
}
28、oha: Rust-driven HTTP pressure measurement tool. This is a Rust development of HTTP request pressure measurement tool , it is simple , with TUI animation interface , support for generating request latency , throughput and other metrics of the report , as well as dynamic URLs and more flexible request interval (burst-delay) and other features .
29、steel: An embedded Scheme interpreter based on Rust. This is an embedded Scheme interpreter written in Rust, designed to provide lightweight and fast scripting language support. It addresses the need for an efficient and flexible scripting engine in embedded environments or small applications. From@Infernal Bells sharing
Swift Project
30、aural-player: A music player for macOS inspired by Winamp. This project is a music player for macOS in the Swift programming language inspired by the classic Winamp player. It comes with built-in sound effects and equalizer, support for multiple audio formats, playback, lyrics display, customizable interface and more.
31、DockDoorDock Window Preview Tool for macOS. This project is a dock window previewer developed with Swift and SwiftUI. Simply hover over an app icon on the Dock to preview its open windows, with Windows-like Alt+Tab switching and custom shortcuts.
artificial intelligence (AI)
32、moondream: A small visual language model. This is a small visual language model that can run on resource-constrained devices, which understands and generates natural language descriptions associated with images, supporting functions such as image recognition, description generation, and Q&A.
from transformers import AutoModelForCausalLM, AutoTokenizer
from PIL import Image
model_id = "vikhyatk/moondream2"
revision = "2024-08-26"
model = AutoModelForCausalLM.from_pretrained(
model_id, trust_remote_code=True, revision=revision
)
tokenizer = AutoTokenizer.from_pretrained(model_id, revision=revision)
image = ('<IMAGE_PATH>')
enc_image = model.encode_image(image)
print(model.answer_question(enc_image, "Describe this image.", tokenizer))
33、Prompt_Engineering: A comprehensive hands-on guide to prompt engineering. This tutorial is dedicated to helping users master the art of communicating with Large Language Models (LLMs). It covers basic to advanced hint engineering techniques, with detailed implementation guides and sample code.
34、spaCy: A powerful Python library for natural language processing. This is an industrial-grade natural language processing (NLP) library that supports disambiguation and training in more than 70 languages. Written in Python, it enables annotation, parsing and text classification, and supports model packaging and deployment.
# pip install -U spacy
# python -m spacy download en_core_web_sm
import spacy
# Load English tokenizer, tagger, parser and NER
nlp = ("en_core_web_sm")
# Process whole documents
text = ("When Sebastian Thrun started working on self-driving cars at "
"Google in 2007, few people outside of the company took him "
"seriously. “I can tell you very senior CEOs of major American "
"car companies would shake my hand and turn away because I wasn’t "
"worth talking to,” said Thrun, in an interview with Recode earlier "
"this week.")
doc = nlp(text)
# Analyze syntax
print("Noun phrases:", [ for chunk in doc.noun_chunks])
print("Verbs:", [token.lemma_ for token in doc if token.pos_ == "VERB"])
# Find named entities, phrases and concepts
for entity in :
print(, entity.label_)
35、ultralytics: Advanced object detection and tracking models. This project is based on a previous version of YOLO, with new features and improved models that excel in tasks such as object detection, tracking, instance segmentation, and image classification.
from ultralytics import YOLO
# Load a model
model = YOLO("")
# Train the model
train_results = (
data="", # path to dataset YAML
epochs=100, # number of training epochs
imgsz=640, # training image size
device="cpu", # device to run on, . device=0 or device=0,1,2,3 or device=cpu
)
# Evaluate model performance on the validation set
metrics = ()
# Perform object detection on an image
results = model("path/to/")
results[0].show()
# Export the model to ONNX format
path = (format="onnx") # return path to exported model
other than
36、BilibiliSponsorBlock: Station B Video Airborne Assistant. This is a browser plugin that can automatically skip the cha-mei clips and the opening and closing animations in the videos of Station B. All the labeling data are contributed by users, and it supports Chrome, Edge and FireFox browsers.
37、cognitive-load: Suggestions for reducing cognitive load for developers. This is an article about how to reduce cognitive load during software development. That is, simplify the code, improve its readability, and reduce the developer's burden in reading and understanding the code.
38、dockerc: A tool for compiling Docker images into standalone executables. This project simplifies the process of distributing and running software by converting Docker images into binary executables without having to configure the Docker environment or install dependencies. From@kero990 sharing
39、kubernetes-goat: Kubernetes security attack and defense rehearsal platform. This project is used to build a cluster environment that is full of vulnerabilities and susceptible to attacks, so that developers can learn K8s attacks and defense techniques in real scenarios.
40、pilipala: open source bilibili third-party client . The project is a third-party client for B station developed with Flutter, supporting Android and iOS platforms. It provides a list of recommended videos , popular live streams , dramas , offline caching , reply to comments , pop-ups and search and other functions . From@Micro·J sharing
41、Sensor-Watch: Open source circuit board for Casio F-91W watches. This project is a homemade circuit board for the classic Casio F-91W watch with ARM Cortex-M0+ microcontroller (SAM L22). Equipped with a ten-digit segment LCD display, five indicator segments, LED backlighting and three buttons, it supports user programming via USB to run custom programs on the watch.
42、themostdangerouswritingapp: A tool that pushes the limits of writing productivity. It's a web app that helps users enter a "mindstream" of writing. If you stop typing for more than 5 seconds, the text on the screen will gradually become blurry and eventually disappear. From@lonegunner sharing
Open Source Books
43、udlbook: Understanding Deep Learning Understanding Deep Learning. The book is written by Simon . Prince is a specialized book on deep learning, covering topics such as the theoretical foundations of deep learning, performance evaluation, convolutional networks, Transformers, graph neural networks, generative adversarial networks (GANs), Diffusion Models, reinforcement learning, etc., with a large number of practice problems.
ultimate
Thank you for participating in the sharing of open source projects partners, welcome more open source enthusiasts to HelloGitHub self-referral/recommendation of open source projects. If you find an interesting project on GitHub, justClick hereShare it with the big guys!
This issue have you interested in open source projects? If so, leave a comment and let me know ~ If you have not read too much, you canClick to readPast Issue Content.
Thank you for reading and if you think this issue is still a good oneAsk for Likes, Ask for Shares ❤️