Interesting open source projects | "HelloGitHub" Issue 91

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 major manufacturers, etc., covering a variety of 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. Barrier : A tool for controlling multiple computers with one keyboard and mouse. This project simulates the function of a KVM switch to allow multiple computers and different operating systems to share a keyboard and mouse, making the workflow more efficient. It is easy to install and use, does not require complicated configuration, and supports functions such as custom hot keys, multiple operating systems, and visual operation interfaces. Shared by @loongmonkey

2. clumsy : a tool that makes Windows network worse. This project is a tool for manually controlling Windows network conditions based on WinDivert. It can be used immediately without installation and download, and can be used to simulate network delays, throttling, packet loss, etc.

3. vlc : Free, free, cross-platform video player. This is a player that can play files in almost all audio and video formats and various streaming media protocols. It is completely free, has no ads, and does not require the installation of additional codecs. It supports playing files, discs, cameras and streaming media content. Can run on Windows, Linux, macOS, Android and iOS platforms.

C# project

4. Borderless-Gaming : A universal full-screen game tool. A window optimization tool developed specifically for games, which can make games that do not originally support full screen full screen. It has a simple interface and is easy to use, supports one-click full screen and recovery, and is suitable for Windows systems.

5. Dependencies : A tool to view DLL dependencies. DLL files, namely dynamic link library files, are a type of shared library files. Executable files (.exe) on Windows systems generally contain multiple files with the .dll suffix. This project is a tool for viewing the dependency tree of DLL files on Windows. It can help solve the problem of failure to run the .exe program due to missing dependencies. Sharing from @lonegunner

6. WinMemoryCleaner : A practical Windows memory cleaning tool. It is written in C#, is only 200+KB in size, has a clean interface, can set the interval and threshold for automatic memory cleaning, and supports functions such as process whitelist, multiple languages, hotkeys, and startup. Sharing from @隼丶, Zhige reNo7

C++ project

7. KeyDB : multi-threaded version of Redis. This project is a multi-threaded Redis open sourced by Snapchat. It has the characteristics of high performance, higher throughput, and full compatibility with the Redis protocol. With multi-threading, you can safely execute KEYS and SCAN commands without worrying about blocking Redis.

8. MuseScore : a free and open source score writing tool. This is a desktop tool for creating and editing music scores written in C++. It has a beautiful interface, Chinese language and rich functions. The key point is that it is free and unlimited. Supports arranging for more than 500 musical instruments including piano, guitar, etc., and is suitable for Windows, Linux and macOS systems.

9. rpcs3 : An open source emulator that runs PS3 games smoothly. This project is a PlayStation 3 (PS3) emulator written in C++. After installation, using the default configuration, you can run a variety of games on PS3 consoles relatively smoothly. It is suitable for Windows, Linux, macOS and FreeBSD operating systems.

10. tiled : A powerful 2D game level editing tool. This project is a fully community-driven, powerful and easy-to-use 2D game scene editor. It can help developers quickly create 2D game maps and design levels. It supports flexible object layers, free placement of images, pixel alignment, Features like tile animation and collision editor.

Go project

11. groupcache : A lightweight distributed cache library written in Go. This project is an official open source library by Golang, which implements a distributed cache that does not require deployment. It supports functions such as filling the cache with only one process when the query misses the cache (anti-penetration and avalanche), automatic expansion of hotspot data, etc., but does not support updating and deleting data (LRU controls memory), so it is only suitable for certain specific scenarios.

12. kopia : A useful cross-platform backup tool. A backup/restore tool suitable for Windows, Linux and macOS. It can encrypt and compress specified files and directories to generate snapshots, and then upload them to remote servers or cloud storage to realize the function of remote backup data. It supports command line out of the box. There are two ways to use it: and GUI.

13. photoprism : an open source private cloud photo album with AI function. This project is an online private photo album written in Go language. It is stable and easy to deploy. It supports browsing/backing up pictures, browsing photos by location/timeline, automatic backup of photos on the mobile terminal, as well as face recognition, automatic picture classification and other functions. It is available Come and build a private photo album to manage your photos. Sharing from @红宇Hov

14. zlsgo : Simple and easy-to-use Golang tool library. This project encapsulates more than a dozen frequently written functions in development, such as HTTP services, logs, hot restart, validators, and coding, into a library that can be used immediately to improve development efficiency. Sharing from @NERVA9dyXx

  func main() {

      // 需要验证的数据
      data := "我是需要验证的数据,我的作用是做用户名"
      // 开始验证数据,不能为空,必须包含字母
      name, err := zvalid.Text(data, "用户名").Required().HasNumber().HasLetter().String()
      if err != nil {
          zlog.Debug("验证失败", err)
      }

      data = "我是需要验证的数据,我的作用是做用户名,我有字母 A"
      name, err = zvalid.Text(data, "用户名").Required().HasLetter().String()
      zlog.Debug("用户名是:", name)

      // 初始化一个对象,并绑定需要验证的字符串
      // zvalid.New().Verifi("username","用户名").String()
  }

Java project

15. minum : minimalist Java Web framework. This project is a Java Web framework developed by the author. It is simple, has zero dependencies, has good performance, and has built-in database, Web server, template engine, log and other functions. If you are a Java novice and are often "lost" in the major Web frameworks, then you can quickly get started with Web development and clear your head through this project.

package org.example.myproject;

import com.renomad.minum.web.*;
                                                                                                                       
public class Main {

    public static void main(String[] args) {
        // Start the system
        FullSystem fs = FullSystem.initialize();

        // Register some endpoints
        fs.getWebFramework().registerPath(
                RequestLine.Method.GET,
                "",
                request -> Response.htmlOk("<p>Hi there world!</p>"));

        fs.block();
    }
}

16. WePush : A small tool focused on batch push. This project is a batch push desktop tool written in Java. It supports functions such as custom messages, preview messages, batch import of users, multi-account management, scheduled push, etc. It currently supports official account template messages, corporate WeChat, WeChat customer service, SMS, and email. and other message types. Sharing from @zhoubo

JavaScript project

17. auto-animate : A plug-and-play transition animation library. This project can add smooth transition effects to your web application. It is easy to get started without modifying existing code. The animation will be automatically triggered when child elements are added, removed or moved. It is suitable for React, Solid, Vue, Svelte and JavaScript. application. Shared by @Uyloal

18. html-to-image : A library that converts HTML web pages into images. This project can convert any DOM node into images in various formats such as SVG, PNG, JPEG, etc., which can be used directly in React and native JavaScript codes. Sharing from @红宇Hov

var node = document.getElementById('my-node');

htmlToImage.toPng(node)
  .then(function (dataUrl) {
    var img = new Image();
    img.src = dataUrl;
    document.body.appendChild(img);
  })
  .catch(function (error) {
    console.error('oops, something went wrong!', error);
  });

19. lx-music-desktop : A free, ad-free music software. The desktop version of Luoxue Music Assistant is a music search tool developed based on Electron + Vue. You need to configure the music source yourself and supports running on Windows, macOS, Linux, and Android platforms.

20. threejs-tetris-react : 3D Tetris. This project is a 3D Tetris game built using Three.js + React + TypeScript.

21. workout-lol : Develop your muscle training plan. This project is a small web application written in NextJS, which can help you exercise better. When users come up, they need to select exercise equipment and specify body parts, and then the website will provide action guidance videos and text descriptions. Sharing from @红宇Hov

Objective-C projects

22. Sequel-Ace : MySQL database management tool for macOS. Because the old database management tool Sequel Pro on Mac stopped updating, Sequel-Ace was created. It is free, open source, continuously updated, supports Intel and Apple chips, and is suitable for macOS 10.13 and above systems.

Python project

23. codespell : A command to find spelling errors in the code. This project is mainly used to check the spelling errors of common words in files. It rarely produces false positives for variable names. It supports functions such as specifying directories, file suffixes, modification suggestions, and ignoring files. Shared by @Xuefeng Xu

codespell some_file some_dir/ *.ext  # 检查目录下 ext 后缀文件
codespell -w, --write-changes  # 显示修改建议

24. pwntools : Well-known CTF framework and vulnerability exploitation development library. This project is a CTF framework written in Python. It provides remote connection, network, assembly/disassembly, ELF module, shellcode generation and other functions out of the box, allowing CTF players to focus on writing EXP (attack logic to exploit vulnerabilities).

from pwn import *
context(arch = 'i386', os = 'linux')

r = remote('exploitme.example.com', 31337)
# 这里写漏洞利用逻辑
r.send(asm(shellcraft.sh()))
r.interactive()

25. python-holidays : Python library for handling holidays. This project supports the dynamic generation of statutory holidays announced by countries/regions and provinces, and can quickly determine whether a specified date is a holiday.

from datetime import date
import holidays

cn_holidays = holidays.CN()
date(2021, 10, 1) in cn_holidays  # True
date(2023, 10, 8) in cn_holidays  # False
date(2024, 2, 9) in cn_holidays  # True 我看了下源码还未更新 2024 年的假期

26. Qexo : Beautiful Hexo static blog editor. This project is based on Django's Hexo static blog management backend, which supports article management, multiple image beds, automatic updates, friendly links, site statistics and other functions.

27. tacticalrmm : A tool for remote monitoring and management of PCs. This project is an IT management platform built using Django+Vue.js, which supports remote desktop control, remote execution of commands and scripts, uploading and downloading of files, alarms and other functions similar to TeamViewer.

Rust project

28. helix : A terminal text editor written in Rust. An editor inspired by Kakoune and Neovim, it is out-of-the-box, smart, and more friendly to novices. It supports Vim-like editing mode, tree-sitter (faster highlighting), LSP and other functions.

29. mini-redis : mini-Redis written in Rust. This project is Redis built with Tokio, and only implements commands such as PING, GET, SET, and PUBLISH. It can be used as a Tokio practice project and cannot be used in a production environment.

use tokio::net::TcpListener;
use tokio::io::{AsyncReadExt, AsyncWriteExt};

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    let listener = TcpListener::bind("127.0.0.1:8080").await?;

    loop {
        let (mut socket, _) = listener.accept().await?;

        tokio::spawn(async move {
            let mut buf = [0; 1024];

            // In a loop, read data from the socket and write the data back.
            loop {
                let n = match socket.read(&mut buf).await {
                    // socket closed
                    Ok(n) if n == 0 => return,
                    Ok(n) => n,
                    Err(e) => {
                        eprintln!("failed to read from socket; err = {:?}", e);
                        return;
                    }
                };

                // Write the data back
                if let Err(e) = socket.write_all(&buf[0..n]).await {
                    eprintln!("failed to write to socket; err = {:?}", e);
                    return;
                }
            }
        });
    }
}

30. rust-blog : A blog for Rust beginners. The articles here can help Rust beginners better master the Rust language, including suggestions for beginners to learn Rust, explanations of the Rust standard library, etc.

Swift project

31. Delta : All-in-one classic game emulator on iOS. This is a game emulator for iOS devices that does not require jailbreaking and supports NES, GBA, Nintendo 64 and other games.

other

32. AnuPpuccin : An exquisite Obsidian theme. This Obsidian theme supports various color palettes, built-in mainstream color schemes, rainbow folders, custom backgrounds and other functions.

33. fluentui-system-icons : Microsoft’s open source icon collection. This is a set of Microsoft Fluent UI design style icons, which are rich, refined, and unified.

34. leetcode : A comprehensive guide to Leetcode algorithm problem solving. This project includes relevant solutions to topics such as LeetCode, "Sword Pointer Offer", "Programmer Interview Guide" and other topics. The problem solutions are implemented in multiple programming languages ​​such as Java, Python, C++, Go, TypeScript, and Rust. Shared by @Libin YANG

35. Smart_Plant : Homemade smart plant monitoring equipment. This is an environmental monitoring device that can be directly inserted into the soil and supports the measurement of soil moisture, temperature and light. The project only contains circuit boards and requires self-assembly of electronic ink screens, solar panels, etc.

36. TNT-Weekly : TNT front-end weekly. This project is a weekly project initiated by Tencent News Front-end Team (TNT), which publishes the latest excellent articles and industry trends in the front-end field at home and abroad every week.

37. try : Try the command before executing it. This project allows you to view the command execution results before the command is actually executed. It should be noted that it is not a completely independent space (sandbox) because all network requests are allowed.

Open source books

38. latex-cookbook : "LaTeX paper writing tutorial". This book teaches you how to write papers using LaTeX, covering the basics of LaTeX, text editing, formulas, chart design, literature citation, etc.

39. Startup-CTO-Handbook : "Startup Company CTO Handbook". This is a book for startup chief technology officers, covering technical team management, recruiting and interviewing, technical architecture, and more. The author has served as CTO and CEO of many start-up companies, and also served as an Entrepreneur-in-Residence (EIR) at Tencent.

machine learning

40. deepface : lightweight face recognition and analysis library. This project is a face recognition and facial attribute analysis framework written in Python, which can intelligently identify age, gender, emotion and other information based on face images.

41. DeepLearningSystem : AI system & deep learning tutorial. This project is mainly a tutorial on artificial intelligence and deep learning system design, covering the basic knowledge and overview of AI, AI chips, AI compiler principles, AI framework core technologies, etc.

42. guidance : Microsoft’s open source LLM prompt programming language. This project is Microsoft's open source template language for writing prompts. It is used to write complex, reusable, and easy-to-manage prompts. It supports multiple large language models such as GPT-4 and LLaMa.

at last

Thanks to the friends who selflessly share open source projects, more open source enthusiasts are welcome to come to HelloGitHub to self-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 .

Lei Jun announced the complete system architecture of Xiaomi's ThePaper OS, saying that the bottom layer has been completely restructured. Yuque announced the cause of the failure and repair process on October 23. Microsoft CEO Nadella: Abandoning Windows Phone and mobile business was a wrong decision. Both Java 11 and Java 17 usage rates exceeded Java 8 Hugging Face was restricted from accessing. Yuque network outage lasted for about 10 hours and has now returned to normal. The National Data Administration officially unveiled Oracle. Launched Java development extension for Visual Studio Code. Musk: Donate 1 billion if Wikipedia is renamed "Weiji Encyclopedia" USDMySQL 8.2.0 GA
{{o.name}}
{{m.name}}

Guess you like

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