《HelloGitHub》第 91 期

兴趣是最好的老师,HelloGitHub 让你对编程感兴趣!

3fd40adc7d311f3c3ef14d6553115410.jpeg

简介

HelloGitHub 分享 GitHub 上有趣、入门级的开源项目。

github.com/521xueweihan/HelloGitHub

这里有实战项目、入门教程、黑科技、开源书籍、大厂开源项目等,涵盖多种编程语言 Python、Java、Go、C/C++、Swift...让你在短时间内感受到开源的魅力,对编程产生兴趣!


以下为本期内容|每个月 28 号更新

C 项目

1、barrier:一套键盘鼠标控制多台电脑的工具。该项目通过模拟 KVM 切换器功能,实现多台电脑、不同操作系统,共享一套键盘鼠标,让工作流程更加高效。它安装简单使用方便,无需复杂的配置,支持自定义热键、多种操作系统、可视化操作界面等功能。来自 @loongmonkey 的分享

08a49c5615ef6b36589d0da847d86e74.png

地址:https://github.com/debauchee/barrier

2、clumsy:让 Windows 网络变差的工具。该项目是基于 WinDivert 实现的手动控制 Windows 网络情况的工具,它无需安装下载即用,可用于模拟网络延迟、节流、丢包等。

5ba6580bc34827804bdd36bc8feb6d78.gif

地址:https://github.com/jagt/clumsy

3、vlc:自由、免费、跨平台的视频播放器。这是一款可播放几乎所有音视频格式的文件和各种流媒体协议的播放器,它完全免费、没有广告,无需额外安装编解码器,支持播放文件、光盘、摄像头和流媒体的内容,可运行在 Windows、Linux、macOS、Android 和 iOS 等平台。来自 @Xuefeng Xu 的分享

0f9c57f956cf3c2f260b52a8b322c523.jpeg

地址:https://github.com/videolan/vlc

C# 项目

4、Borderless-Gaming:通用的游戏全屏工具。一款专门为游戏开发的窗口优化工具,能够将原本不支持全屏的游戏全屏化。它界面简洁、使用方便,支持一键全屏和恢复,适用于 Windows 系统。

6e76c6482b27d6d1e6c7fe9b3837a4fa.jpeg

地址:https://github.com/Codeusa/Borderless-Gaming

5、Dependencies:查看 DLL 依赖关系的工具。DLL 文件即动态链接库文件是一种共享库文件,Windows 系统上的可执行文件(.exe) 一般包含多个 .dll 后缀的文件。该项目是 Windows 上查看 DLL 文件依赖树的工具,能够帮助解决因依赖缺失,导致运行 .exe 程序失败的问题。来自 @孤胆枪手 的分享

ac7c2f6d613e05a01a489e5ea65aa4be.gif

地址:https://github.com/lucasg/Dependencies

6、WinMemoryCleaner:一款实用的 Windows 内存清理工具。它采用 C# 编写、仅 200+KB 大小、界面清爽,可设置自动清理内存的间隔时间和阈值,支持进程白名单、多国语言、热键、开机启动等功能。来自 @猎隼丶止戈reNo7 的分享

0a00dc9d69b3ef0967ea1276844355f8.png

地址:https://github.com/IgorMundstein/WinMemoryCleaner

C++ 项目

7、KeyDB:多线程版的 Redis。该项目是由 Snapchat 开源的支持多线程的 Redis,它具有高性能、更高的吞吐量、完全兼容 Redis 协议等特点。有了多线程就可以放心大胆地执行 KEYS 和 SCAN 命令,不用再担心阻塞 Redis 了。

e2716b41566e5db4b446af6c253dba04.png

地址:https://github.com/Snapchat/KeyDB

8、MuseScore:一款免费开源的写谱工具。这是一款用 C++ 编写的创建和编辑乐谱的桌面工具,它拥有精美的界面、中文语言和丰富的功能,重点是免费畅用无限制。支持为包括钢琴、吉他等 500 多种乐器编曲,适用于 Windows、Linux 和 macOS 系统。

30e1aed199b22b12c495f4a4a68f9274.png

地址:https://github.com/musescore/MuseScore

9、rpcs3:流畅运行 PS3 游戏的开源模拟器。该项目是用 C++ 写的 PlayStation 3(PS3) 模拟器,安装后使用默认配置,就能较为流畅地运行多种 PS3 主机上的游戏,适用于 Windows、Linux、macOS 和 FreeBSD 操作系统。

221728a6a172e4a0ce6e7a6e9bbe1cb6.gif

地址:https://github.com/RPCS3/rpcs3

10、tiled:一款强大的 2D 游戏关卡编辑工具。该项目是一款完全由社区驱动、功能强大、容易上手的 2D 游戏场景编辑器,它能够帮助开发者快速制作 2D 游戏地图和设计关卡,支持灵活的对象图层、自由放置图像、对齐像素、图块动画和碰撞编辑器等功能。

7c4e32d488d70b9013b92cc17a9f862b.png

地址:https://github.com/mapeditor/tiled

Go 项目

11、groupcache:Go 写的轻量级分布式缓存库。该项目是由 Golang 官方开源的库,它实现了一个无需部署的分布式缓存。支持当查询未命中缓存时仅一个进程填充缓存(防穿透和雪崩)、热点数据自动扩展等功能,但不支持更新和删除数据(LRU 控制内存),所以仅适用于某些特定场景。

地址:https://github.com/golang/groupcache

12、kopia:好用的跨平台备份工具。适用于 Windows、Linux 和 macOS 的备份/还原工具,它能够将指定的文件和目录加密压缩后生成快照,然后上传到远程服务器或云存储,实现远程备份数据的功能,开箱即用支持命令行和 GUI 两种使用方式。

7d5e7537e9dc04716febb3297f306e24.png

地址:https://github.com/kopia/kopia

13、photoprism:带 AI 功能的开源私人云相册。该项目是用 Go 语言写的在线私人相册,它稳定、部署方便,支持浏览/备份图片、按地点/时间线浏览照片、移动端自动备份照片,以及人脸识别、图片自动分类等功能,可用来搭建私人相册管理你的照片。来自 @鸿宇Hov 的分享

462153da5f939b57d19ed447b58da220.jpeg

地址:https://github.com/photoprism/photoprism

14、zlsgo:简单易用的 Golang 工具库。该项目把 HTTP 服务、日志、热重启、验证器、编码等十几种开发中经常写的功能,封装成了一个库,拿来即用提高开发效率。来自 @神经蛙9dyXx 的分享

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()}

地址:https://github.com/sohaha/zlsgo

Java 项目

15、minum:极简的 Java Web 框架。该项目是作者手撸的 Java Web 框架,它简约、零依赖、具有良好的性能,内置数据库、Web 服务器、模版引擎、日志等功能。如果你是一个 Java 新手,而且经常在各大 Web 框架中“迷失方向”,那你可以通过这个项目,快速上手 Web 开发并理清头绪。

package org.example.myproject;import com.renomad.minum.web.*;public class Main {public static void main(String[] args) {// Start the systemFullSystem fs = FullSystem.initialize();// Register some endpointsfs.getWebFramework().registerPath(RequestLine.Method.GET,"",request -> Response.htmlOk("<p>Hi there world!</p>"));fs.block();}
}

地址:https://github.com/byronka/minum

16、WePush:专注批量推送的小工具。该项目是用 Java 写的批量推送桌面工具,支持自定义消息、预览消息、批量导入用户、多账号管理、定时推送等功能,目前已支持公众号模板消息、企业微信、微信客服、短信、邮件等消息类型。来自 @周波 的分享

5633644c64859f15eee4c4f379b03b4e.png

地址:https://github.com/rememberber/WePush

JavaScript 项目

17、auto-animate:一个即插即用的过渡动画库。该项目可以为你的 Web 应用添加平滑的过渡效果,它上手简单无需修改现有代码,动画会在子元素被添加、移除或移动时自动触发,适用于 React、Solid、Vue、Svelte 和 JavaScript 应用。来自 @Uyloal 的分享

5b550b01880ce3e32a3844a554fe1b17.gif

地址:https://github.com/formkit/auto-animate

18、html-to-image:将 HTML 网页转化成图片的库。该项目可以将任意 DOM 节点,转换成 SVG、PNG、JPEG 等多种格式的图像,可直接在 React 和原生 JavaScript 代码中使用。来自 @鸿宇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);});

地址:https://github.com/bubkoo/html-to-image

19、lx-music-desktop:一款免费、没广告的音乐软件。洛雪音乐助手桌面版是基于 Electron + Vue 开发的音乐搜索工具,需要自己配置音乐源,支持在 Windows、macOS、Linux、Android 平台上运行。

aa8ab7b89f927ffae62354bba7be352b.png

地址:https://github.com/lyswhut/lx-music-desktop

20、threejs-tetris-react:3D 俄罗斯方块。该项目是采用 Three.js + React + TypeScript 构建的 3D 俄罗斯方块游戏。

bc1bb9e3bd8cea62bcab5596b41c4d2a.png

地址:https://github.com/RylanBot/threejs-tetris-react

21、workout-lol:制定你的肌肉训练计划。该项目是采用 NextJS 写的小型 Web 应用,可以帮你更好地健身。用户上来需要选择锻炼器材、指定身体部位,随后网站就会给出动作指导视频和文字描述。来自 @鸿宇Hov 的分享

f5185ccd8608868f5b3e50ea6c7894c0.png

地址:https://github.com/workout-lol/workout-lol

Objective-C 项目

22、Sequel-Ace:适用于 macOS 的 MySQL 数据库管理工具。因为 Mac 上的老牌数据库管理工具 Sequel Pro 停止更新,所以就有了 Sequel-Ace。它免费、开源、持续更新,支持 Intel 和苹果芯片,适用于 macOS 10.13 及以上系统。

83a430dc7a25bbf822411ef831700c3c.png

地址:https://github.com/Sequel-Ace/Sequel-Ace

Python 项目

23、codespell:一条命令找出代码中的拼写错误。该项目主要用于检查文件中常见单词的拼写错误,对于变量名极少产生误报,支持指定目录、文件后缀、修改建议、忽略文件等功能。来自 @Xuefeng Xu 的分享

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

地址:https://github.com/codespell-project/codespell

24、pwntools:知名的 CTF 框架和漏洞利用开发库。该项目是用 Python 编写的 CTF 框架,开箱即用地提供了远程连接、网络、汇编/反汇编、ELF 模块、生成 shellcode 等功能,让 CTF 选手可以专注于编写 EXP(利用漏洞的攻击逻辑)。

from pwn import *
context(arch = 'i386', os = 'linux')r = remote('exploitme.example.com', 31337)
# 这里写漏洞利用逻辑
r.send(asm(shellcraft.sh()))
r.interactive()
9939cae82d97577aa11782cc91069dd7.png

地址:https://github.com/Gallopsled/pwntools

25、python-holidays:处理假期的 Python 库。该项目支持动态生成国家/地区和省份公布的法定节假日,可以快速地判断指定日期是否为节假日。

from datetime import date
import holidayscn_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 年的假期

地址:https://github.com/vacanza/python-holidays

26、Qexo:漂亮的 Hexo 静态博客编辑器。该项目是基于 Django 的 Hexo 静态博客管理后台,支持文章管理、多种图床、自动更新、友情链接、站点统计等功能。

36062c4342aecf6bcfc0a0e48525e48d.png

地址:https://github.com/Qexo/Qexo

27、tacticalrmm:一个远程监控和管理 PC 的工具。该项目是采用 Django+Vue.js 构建的 IT 管理平台,支持类似 TeamViewer 的远程桌面控制、远程执行命令和脚本、上传和下载文件、警报等功能。

acc1edaae76c1a339ff432cf73232211.png

地址:https://github.com/amidaware/tacticalrmm

Rust 项目

28、helix:一款 Rust 写的终端文本编辑器。受 Kakoune 和 Neovim 启发的编辑器,它开箱即用、智能、对新手更加友好,支持类似 Vim 的编辑模式、tree-sitter(高亮更加快速)、LSP 等功能。

463d6e627ffd67f71ed0f45f099498f6.png

地址:https://github.com/helix-editor/helix

29、mini-redis:Rust 写的迷你 Redis。该项目是用 Tokio 构建的 Redis,仅实现了 PING、GET、SET、PUBLISH 等命令。可作为 Tokio 的练手项目,不可用于生产环境。

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 closedOk(n) if n == 0 => return,Ok(n) => n,Err(e) => {eprintln!("failed to read from socket; err = {:?}", e);return;}};// Write the data backif let Err(e) = socket.write_all(&buf[0..n]).await {eprintln!("failed to write to socket; err = {:?}", e);return;}}});}
}

地址:https://github.com/tokio-rs/mini-redis

30、rust-blog:面向 Rust 初学者的博客。这里的文章可以帮助 Rust 初学者更好地掌握 Rust 语言,包括给新手学习 Rust 的建议、Rust 标准库讲解等内容。

地址:https://github.com/pretzelhammer/rust-blog

Swift 项目

31、Delta:iOS 上的多合一经典游戏模拟器。这是一款无需越狱、适用于 iOS 设备的游戏模拟器,支持 NES、GBA、Nintendo 64 等游戏。

39a8eb2c47afe9e5339cc236c0e8a75c.png

地址:https://github.com/rileytestut/Delta

其它

32、AnuPpuccin:一款精美的 Obsidian 主题。这款 Obsidian 主题支持各种调色板、内置主流配色方案、彩虹文件夹、自定义背景等功能。

ee786c68c7b4c5d0f65c6b96722771b4.png

地址:https://github.com/AnubisNekhet/AnuPpuccin

33、fluentui-system-icons:微软开源的图标集合。这是一套微软 Fluent UI 设计风格的图标,它丰富、精致、统一。

ace82b1312e09b74f0082f83b3614272.png

地址:https://github.com/microsoft/fluentui-system-icons

34、leetcode:全面的 Leetcode 算法解题指南。该项目包含 LeetCode、《剑指 Offer》、《程序员面试金典》等题目的相关题解,题解有 Java、Python、C++、Go、TypeScript、Rust 等多种编程语言实现。来自 @Libin YANG 的分享

48c85320fe5f664d7bf28db03d1926ab.png

地址:https://github.com/doocs/leetcode

35、Smart_Plant:自制智能植物监控设备。这是一款可直接插入土壤的环境监控设备,支持测量土壤湿度、温度和光照,项目仅包含电路板,需自行组装电子墨水屏、太阳能电池板等。

5df9ae7891d9f96cc5e0cc562d8e6c55.jpeg

地址:https://github.com/JGAguado/Smart_Plant

36、TNT-Weekly:TNT 前端周刊。该项目是由腾讯新闻前端团队(TNT)发起的周刊,每周会发布国内外前端领域最新的优秀文章和行业动态。

地址:https://github.com/tnfe/TNT-Weekly

37、try:在命令执行前先试一试。该项目可以让你在命令真正执行前,查看命令执行结果,需要注意的是它并不是一个完全独立的空间(sandbox),因为所有的网络请求都是被允许的。

b0c58c45955a081c535175bf69a3bb94.gif

地址:https://github.com/binpash/try

开源书籍

38、latex-cookbook:《LaTeX 论文写作教程》。该书是教你如何用 LaTeX 写论文,内容涵盖了 LaTeX 基础、文本编辑、公式、图表设计、文献引用等方面。

地址:https://github.com/xinychen/latex-cookbook

39、Startup-CTO-Handbook:《初创公司 CTO 手册》。这是一本写给初创公司首席技术官的书,内容涵盖技术团队管理、招聘和面试、技术架构等方面。作者先后担任过多家创业公司的 CTO 和 CEO,还曾在腾讯做过驻点企业家(EIR)。

地址:https://github.com/ZachGoldberg/Startup-CTO-Handbook

机器学习

40、deepface:轻量级人脸识别和分析库。该项目是 Python 写的人脸识别和面部属性分析框架,可根据人脸图像智能识别年龄、性别、情绪等信息。

ce42ca53c7bbcf2477e75eddb50c9ecf.jpeg

地址:https://github.com/serengil/deepface

41、DeepLearningSystem:AI 系统 & 深度学习教程。该项目主要是关于人工智能、深度学习系统设计的教程,内容涵盖 AI 基础知识和概述、AI 芯片、AI 编译器原理、AI 框架核心技术等方面。

88f2fc571ea22c178c8b1078b2a2f348.png

地址:https://github.com/chenzomi12/DeepLearningSystem

42、guidance:微软开源的 LLM 提示编程语言。该项目是微软开源的编写 prompt 的模版语言,用于编写复杂、可复用、易于管理的 prompt,支持 GPT-4、LLaMa 等多种大语言模型。

地址:https://github.com/guidance-ai/guidance

最后

感谢乐于分享开源项目的小伙伴们,欢迎更多的开源爱好者来 HelloGitHub 自荐/推荐开源项目。

以上就是本期的所有内容,还没看过瘾?点击阅读 往期内容。

- END -

关注「HelloGitHub」第一时间收到更新

点击阅读原文可按照编程语言查看项目

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/156659.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ESM蛋白质语言模型系列

模型总览 第一篇《Biological structure and function emerge from scaling unsupervised learning to 250 million protein sequences 》ESM-1b 第二篇《MSA Transformer》在ESM-1b的基础上作出改进&#xff0c;将模型的输入从单一蛋白质序列改为MSA矩阵&#xff0c;并在Tran…

Android NDK开发详解之Application.mk探秘

Android NDK开发详解之Application.mk探秘 概览变量APP_ASFLAGSAPP_ASMFLAGSAPP_BUILD_SCRIPTAPP_CFLAGSAPP_CLANG_TIDYAPP_CLANG_TIDY_FLAGSAPP_CONLYFLAGSAPP_CPPFLAGSAPP_CXXFLAGSAPP_DEBUGAPP_LDFLAGSAPP_MANIFESTAPP_MODULESAPP_OPTIMAPP_PLATFORMAPP_PROJECT_PATHAPP_STL…

剑指JUC原理-8.Java内存模型

&#x1f44f;作者简介&#xff1a;大家好&#xff0c;我是爱吃芝士的土豆倪&#xff0c;24届校招生Java选手&#xff0c;很高兴认识大家&#x1f4d5;系列专栏&#xff1a;Spring源码、JUC源码&#x1f525;如果感觉博主的文章还不错的话&#xff0c;请&#x1f44d;三连支持&…

SwiftUI 如何为文件和图片加入便捷的快速预览功能

功能需求 在 SwiftUI 开发的 App 中,我们有时需要以快速预览(QuickLook)的方式向用户展示文件内容,自己动手去处理上百种文件类型的预览是不现实的。 如上图所示:我们在 SwiftUI 中实现了任意文件的快速预览,这是如何完成的呢? 在本篇博文中您将学到如下内容: 功能需…

如何知道服务器的某个端口是否打开

注意&#xff1a;服务器的TCP端口&#xff0c;比如1886端口&#xff0c;出方向 和进方向 都打开才可以用 1、telnet 命令&#xff1a;telnet ip port&#xff0c;port即端口&#xff0c;我们一般最常见的命令就是telnet&#xff0c;但是telnet使用的是tcp协议&#xff0c;换句…

如何使用查看器筛选、搜索功能进行数据定位?

前言 我们曾探讨过观测云如何通过将内置视图与查看器相联结&#xff0c;实现更全面的数据关联分析。&#xff08;参见《内置视图联动查看器&#xff0c;实现数据关联分析》&#xff09;这里提到的查看器&#xff0c;实际是一个功能全面且强大的数据查看分析工具。其提供多种搜…

【Liunx应用市场】yum

【Liunx应用市场】yum 1. Linux 软件包管理器 yum2. yum源3. yum的使用3.1 yum查找3.2 yum安装3.3 yum删除 所属专栏&#xff1a;Linux学习❤️ &#x1f680; >博主首页&#xff1a;初阳785❤️ &#x1f680; >代码托管&#xff1a;chuyang785❤️ &#x1f680; >感…

【k8s】pod集群调度

调度约束 Kubernetes 是通过 List-Watch **** 的机制进行每个组件的协作&#xff0c;保持数据同步的&#xff0c;每个组件之间的设计实现了解耦。 用户是通过 kubectl 根据配置文件&#xff0c;向 APIServer 发送命令&#xff0c;在 Node 节点上面建立 Pod 和 Container。…

界面控件DevExpress WPF Gauge组件 - 轻松实现个性化商业仪表盘

DevExpress WPF Gauge&#xff08;仪表&#xff09;控件包含了多种圆形仪表类型、水平和垂直线性仪表、分段和矩阵数字仪表以及状态指示器&#xff0c;同时还具有最终用户交互性的集成支持。 P.S&#xff1a;DevExpress WPF拥有120个控件和库&#xff0c;将帮助您交付满足甚至…

Swagger + DOCWAY 一步导出为优雅完整的Markdown、Pdf接口文档

只要开发&#xff0c;只要写接口应该没人不知道Swagger&#xff0c;但DOCWAY可能知道的人不多&#xff0c;但知道用过后就离不开了&#xff0c;不管是作为多方联调的接口文档&#xff0c;还是交接给客户的文档&#xff0c;都是可以的&#xff0c;具体如何使用&#xff0c;详细步…

【k8s】pod详解

一、Pod介绍 1、Pod的基础概念 Pod是kubernetes中最小的资源管理组件&#xff0c;Pod也是最小化运行容器化应用的资源对象&#xff0c;一个pod代表着集群中运行的一个进程。kubernetes中其它大多数组件都是围绕着pod来进行支持和扩展pod功能的。 例如&#xff0c;用于管理po…

Spring系统之IOC与AOP

前言 Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。 IOC 1.IOC的概念 控制反转(IoCInversion of Control)IoC&#xff0c;用白话来讲&#xff0c;就是由容器控制程序之间的&#xff08;依赖&#xff09;关系&#xff0c;而非传统实现中&#xff0c;由程序代码…