Open Source Monthly "HelloGitHub" Issue 88

Interest is the best teacher, HelloGitHub makes you interested in programming!

Introduction

HelloGitHub shares interesting, entry-level open source projects on GitHub.

https://github.com/521xueweihan/HelloGitHub

There are practical projects, introductory tutorials, black technology, open source books, open source projects of Dachang, etc., covering multiple programming languages ​​Python, Java, Go, C/C++, Swift... Let you feel the charm of open source in a short time , get interested in programming!


The following is the content of this issue|Updated on the 28th of every month

C project

1. memreduct : A compact memory management application. This is a Windows memory management tool that can monitor computer memory and clean up system cache in real time. It is small in size (6MB), has obvious memory release effect, and is compatible with Windows XP and higher versions.

2. naxsi : An efficient and easy-to-use Nginx firewall. This is a professional Nginx web application firewall that can be used to defend against SQL injection, XSS attacks, etc. It adopts the white list defense method, the rule configuration is simple, the function is powerful, and it supports interception and learning modes. The learning mode can assist in discovering unknown attacks, generating and optimizing whitelist rules.

3. no-more-secrets : Simulate the data decryption effect in the movie in the terminal. This is a command-line tool that emulates the effect of data decryption in the 1992 "Baby Boy" movie in the terminal. It can display ASCII or UTF-8 text with a Hollywood-style decryption effect.

$ ls -l | nms
$ ls -l | nms -a           // Set auto-decrypt flag
$ ls -l | nms -s           // Set flag to mask space characters
$ ls -l | nms -f green     // Set foreground color to green
$ ls -l | nms -c           // Clear screen
$ nms -v                   // Display version

4. opencv-mobile : a minimal OpenCV library. This is an OpenCV library that is more than 10 times smaller than the official version. It cuts out the modules and only retains the most basic computing modules and common image processing functions. It is suitable for Android, iOS, Windows, Linux, macOS and other platforms .

C# project

5. FluentHub : A good-looking GitHub client. This is a GitHub client written in C#, designed with Fluent Design, with a clean and stylish interface, suitable for Windows systems.

6. wincompose : Free special symbol input method. This is a small Windows tool that allows you to easily enter special symbols and Emoji. It has built-in thousands of special symbols and Emoji, and supports custom key combination to quickly input special characters.

C++ project

7. clink : Windows command line enhancement tool. This project allows Windows' native cmd.exe to have bash-like powerful auto-completion, history, line editing and other functions, just like on a Linux terminal. Shared from @孤惊枪手

8. miniob : from 0 to 1 database kernel practical tutorial. This project is a learning project based on the database course prototype of Huazhong University of Science and Technology, jointly developed by the OceanBase team and a number of universities, from scratch. It has a simple structure and concise code. It not only has text explanations and video tutorials, but also topics from shallow to deep. Through the method of theory + actual combat, help beginners quickly grasp the functions and synergies of kernel modules, improve engineering coding ability, and help stand out in interviews and jobs. Sharing from @wangyunlai

CSS project

9. layui : Web UI component library for back-end developers. This is a free Web UI component library that adopts the original ecological HTML/CSS/JS development model. It is ready-to-use without building tools, easy to use, simple and refreshing UI, and is deeply loved by the majority of back-end developers.

Go project

10. compress : A powerful Go language compression library. This project contains a variety of compression algorithms, supports real-time compression algorithm zstandard, Snappy optimized version compression algorithm S2, etc., and can also be used to replace standard libraries such as gzip, zip, and zlib.

11. feishu2md : A tool for converting Feishu documents into Markdown. This is a small tool written in Go, which can download Feishu documents as Markdown files. It can be used without installation and download, and supports three usage methods: command line, Docker and online.

12. pop : A tool for sending emails in the terminal. This is a command-line emailing tool written in Go. It supports both TUI and command-line usage. It can also be combined with other tools through pipelines to achieve functions such as AI writing emails.

pop < message.md \
    --from "[email protected]" \
    --to "[email protected]" \
    --subject "Hello, world!" \
    --attach invoice.pdf

13. URLFinder : A tool for quickly extracting web page information. This project can quickly crawl information such as URL addresses on web pages, API interfaces in JS files, etc., and supports batch crawling, in-depth crawling, and secure crawling modes.

java project

14. antlr4 : A powerful parser generation tool. The concise ANTLR grammar can construct a lexical analyzer and a parser, and generate more than 10 target language codes (Java/C++/Python, etc.) from a file, which are mostly used for text analysis, configuration file readers, and legacy code converters , JSON parser, etc.

grammar Expr;
prog:   (expr NEWLINE)* ;
expr:   expr ('*'|'/') expr
    |   expr ('+'|'-') expr
    |   INT
    |   '(' expr ')'
    ;
NEWLINE : [\r\n]+ ;
INT     : [0-9]+ ;

JavaScript project

15. Flowise : Use drag and drop to build large model applications. This project allows you to customize the large model (LLM) process through visualization and drag and drop components, easily build LLM applications, and supports Docker one-click service startup.

16. habitica : develop good habits by playing RPG games. This is a developmental RPG game. When you complete a real to-do item, you will get corresponding experience and gold coins. As your level increases, more ways to play will be opened, such as purchasing equipment, hatching pets, occupations, exclusive skills, team-up dungeons, etc.

17. jsnes : A red and white machine simulator written in JavaScript. This is a NES game emulator written in JavaScript, which can be embedded directly in a webpage or used as a library in Node.js.

// Initialize and set up outputs
var nes = new jsnes.NES({
  onFrame: function(frameBuffer) {
    // ... write frameBuffer to screen
  },
  onAudioSample: function(left, right) {
    // ... play audio sample
  }
});

// Read ROM data from disk (using Node.js APIs, for the sake of this example)
const fs = require('fs');
var romData = fs.readFileSync('path/to/rom.nes', {encoding: 'binary'});

// Load ROM data as a string or byte array
nes.loadROM(romData);

// Run frames at 60 fps, or as fast as you can.
// You are responsible for reliable timing as best you can on your platform.
nes.frame();
nes.frame();
// ...

// Hook up whatever input device you have to the controller.
nes.buttonDown(1, jsnes.Controller.BUTTON_A);
nes.frame();
nes.buttonUp(1, jsnes.Controller.BUTTON_A);
nes.frame();
// ...

18. react-login-page : A beautiful React login page component. React components for quickly building login pages, including more than a dozen packaged login pages with cool interfaces and plug-and-play. Shared from @王楚江

19. talk : an online video application that can be used immediately. This is a P2P online video application built on the basis of WebRTC. It is free, no download and registration required, and it can be used immediately.

Kotlin project

20. Squircle-CE : Code editor on Android phones. This free mobile code editor supports more than 30 programming languages ​​such as C, C++, Go, Python, Java, etc., and also has functions such as syntax highlighting, auto-completion, file management, and code style.

Python project

21. cudf : A database processing Python library that supports GPU. It is equivalent to pandas that supports GPU, and the speed of processing data takes off directly. Provides a pandas-like API that supports loading, merging, aggregating, and filtering to manipulate data.

import cudf, requests
from io import StringIO

url = "https://github.com/plotly/datasets/raw/master/tips.csv"
content = requests.get(url).content.decode('utf-8')

tips_df = cudf.read_csv(StringIO(content))
tips_df['tip_percentage'] = tips_df['tip'] / tips_df['total_bill'] * 100

# display average tip by dining party size
print(tips_df.groupby('size').tip_percentage.mean())

22. fastapi-users : Out-of-the-box FastAPI user management. This project can quickly integrate user registration and identity authentication functions into the FastAPI project, and supports functions such as registration, login, password reset, email verification, OAuth2, and custom authentication.

23. fastkafka : Easily integrate Kafka's Python library for your web services. A Python library based on Pydantic and AIOKafka, which can be used to quickly develop asynchronous Python programs that interact with Kafka.

from fastkafka import FastKafka
from pydantic import BaseModel, Field
from fastkafka._components.logger import get_logger

logger = get_logger(__name__)

class HelloWorld(BaseModel):
    msg: str = Field(
        ...,
        example="Hello",
        description="Demo hello world message",
    )

kafka_brokers = {
    "demo_broker": {
        "url": "<url_of_your_kafka_bootstrap_server>",
        "description": "local demo kafka broker",
        "port": "<port_of_your_kafka_bootstrap_server>",
    }
}

app = FastKafka(kafka_brokers=kafka_brokers)
@app.consumes()
async def on_hello_world(msg: HelloWorld):
    logger.info(f"Got msg: {msg}")

24. networkx : A powerful Python network analysis library. This is a Python library for creating, manipulating, and researching complex network structures. It has built-in commonly used data structures and graph algorithms, and supports the generation of undirected graphs (Graph), directed graphs (DiGraph), multiple undirected graphs (MultiGraph), MultiDiGraph can be used in scenarios such as graph theory research, prototyping, and teaching.

# 查找无向图中两个节点的最短路径
&gt;&gt;&gt; import networkx as nx
&gt;&gt;&gt; G = nx.Graph()
&gt;&gt;&gt; G.add_edge("A", "B", weight=4)
&gt;&gt;&gt; G.add_edge("B", "D", weight=2)
&gt;&gt;&gt; G.add_edge("A", "C", weight=3)
&gt;&gt;&gt; G.add_edge("C", "D", weight=4)
&gt;&gt;&gt; nx.shortest_path(G, "A", "D", weight="weight")
['A', 'B', 'D']

25. rpg_tactical_fantasy_game : RPG turn-based game developed with pygame. This is a 2D strategy turn-based game written in Python, with less project dependencies and simple code, even a novice in Python can understand it. The author is actually not good at making turn-based games, but because he likes to play this kind of games, he has this project.

Rust project

26. dm-ticket : Damai.com’s automatic ticket purchase tool written in Rust. The ticket grabbing tool of Damai.com only supports the purchase of tickets on the H5 page, and does not support seat selection. Shared from [ @Classmate Lin]( https://hellogithub.com/user/TDta5YXLVF7Aloj )

27. gping : A ping tool written in Rust. The project can display the ping results in real time in the form of a line graph, and supports Windows, Linux and macOS operating systems.

28. pot-desktop : a cross-platform word translation software. A translation tool that supports multiple modes such as word translation, input translation, and screenshot translation, and is applicable to Windows, macOS, and Linux.

Swift project

29. alt-tab-macos : alt-tab window switching tool on macOS. This is an application that brings Windows' alt-tab switching window function to macOS. It supports one-click close, full screen, hidden applications, custom AltTab appearance, shortcut keys and other functions.

other

30. digital_video_introduction : A tutorial explaining video technology. This is a step-by-step video technology tutorial, from the basic concept to how the video encoder works, the content is easy to understand, with pictures and texts.

31. immich : self-built mobile phone photo and video backup service. This is an open source solution for backing up photos and videos on iPhone and Android phones by itself, and supports functions such as automatic backup, multi-user, shared albums, and real-time viewing of photos.

32. og-aws : A practical guide to AWS. This is a how-to guide written by engineers using AWS, covering AWS basics, managing servers, career development, and more.

33. OpenCat : Open source quadruped robot pet framework. This is a quadruped robot pet framework based on Arduino and Raspberry Pi, which allows you to control quadruped robots through C/C++/Python programming language. The company's miniature Doraemon looks like a toy version of Boston's mechanical dog.

34. SoftwareArchitect : The road to the architect. This is a study guide that teaches you how to become an architect.

open source books

35. Book4_Power-of-Matrix : "Matrix Power". The book introduces vectors, matrices, vector spaces, matrix decomposition, calculus, space geometry, and more, with full-color illustrations and Python sample code.

36. SearchEngine : "Search Engine Technology". The author of the book is an algorithm engineer of Xiaohongshu, and the content covers the basics of search engines, machine learning, sorting, query word recommendation, elements that determine user experience, etc., so don't be fooled by its plain title.

machine learning

37. DeepFaceLive : Real-time live broadcast and video AI face-changing program. This project can perform real-time AI face-changing on the characters in the camera and local video files, and can be used in PC live broadcast, video and other scenarios.

38. DeepSpeed : Microsoft's open source deep learning training optimization library. As we all know, training a large model (LLM) is a "time-consuming and expensive" thing. The project uses ZeRO++ technology to divide the model state into each GPU during training, and reduce the time required for training by improving throughput. and cost. Shared by @zhizhu

39. modelscope : AI model as a service sharing platform. Mota is an open-source MaaS platform provided by Alibaba Dharma Institute. It provides developers with one-stop service of model experience, reasoning, training, deployment and application, which is equivalent to the domestic version of Hugging Face. Shared from @孤惊枪手

40. PPOxFamily : An entry-level public course on decision intelligence. This course hopes to open your journey of decision-making AI exploration through an in-depth explanation of the most classic deep reinforcement learning algorithm, Proximal Policy Optimization (PPO). It contains videos, theoretical materials, exercises, codes and application samples, which can help beginners quickly grasp how to use PPO to solve various decision-making intelligence problems. Shared by @Fan

at last

Thanks to the friends who selflessly share open source projects, welcome more open source enthusiasts to come to HelloGitHub to recommend/recommend open source projects. If you find an interesting project on GitHub, click here to share it with everyone!

The above is all the content of this issue. Click to read the content of previous issues . If you think the content of this issue is not bad , please like and share❤️

Musk announced that Twitter will change its name to X and replace the Logo . React core developer Dan Abramov announced his resignation from Meta Clarification about MyBatis-Flex plagiarizing MyBatis-Plus OpenAI officially launched the Android version of ChatGPT ChatGPT for Android will be launched next week, now Started pre-registration Arc browser officially released 1.0, claiming to be a replacement for Chrome Musk "purchased for zero yuan", robbed @x Twitter account VS Code optimized name obfuscation compression, reduced built-in JS by 20%! Bun 0.7, a new high-speed JavaScript runtime , was officially released
{{o.name}}
{{m.name}}

Guess you like

Origin my.oschina.net/HelloGitHub/blog/10091384