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

简介

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

github.com/521xueweihan/HelloGitHub

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


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

C 项目

1、HandBrake:免费的开源视频转码工具。这是一款功能强大、社区驱动的开源视频转码工具,它支持将各种不同格式的视频文件,转换为 MP4 和 MKV 等常见格式。

C# 项目

2、SwashbucklerDiary:记录生活点滴的侠客日记。这个项目的作者因为喜欢写日记,所以开发了这款离线优先的日记应用。它拥有简洁清爽的界面,用户可以选择记录日记时的天气、心情和位置。除了支持 Web 在线使用外,还提供了 Android、Windows、iOS 和 macOS 客户端。

3、SyncClipboard:跨平台的剪贴板同步工具。该项目可以轻松实现不同设备间剪贴板内容同步,支持文本、图片和文件。使用时可以选择自己部署服务端,或者使用支持 WebDAV 协议的网盘。

C++ 项目

4、ladybird:真正独立的开源浏览器。该项目作者想要从头构建一个真正独立的 Web 浏览器,所以他从自己写的 SerenityOS 操作系统中分离出浏览器引擎部分,计划基于此做一个全新、跨平台的开源浏览器。目前项目处于早期阶段,尚未发布可供下载的安装包。

5、mosh:适用于移动端的远程终端工具。这是一款专为移动和不稳定的网络环境设计的远程终端工具,它能够在网络切换、高延迟和 IP 变化的情况下,保持远程会话的稳定和更快的响应,适用于 Android、iOS、Linux 和 macOS 等系统。

6、OpenArk:专业的 Windows 恶意程序分析与清理工具。这是一款 Windows 平台上的对抗和清理 Rootkit(恶意程序)工具,它能够帮助程序员发现系统中隐藏的恶意软件,支持查看进程、进程注入、内核驱动模式和扫描等功能。来自 @SHOWTA 的分享

Go 项目

7、dblab:交互式的数据库命令行客户端。这是一个用 Go 编写的轻量级、交互式的 TUI 数据库客户端,它开箱即用、方便快捷,支持 PostgreSQL、MySQL、SQLite3 和 Oracle 数据库,不是桌面工具用不起,而是命令行的更有性价比。

8、go-size-analyzer:分析 Go 编译后文件大小的工具。该项目通过逆向工程和反汇编,收集二进制文件中的地址,合并后计算出每个依赖在最终的二进制文件中所占大小,并通过可视化的方式展示出来。它可以用来分析 Go 程序编译后的文件体积,支持命令行和 Web 两种使用方式。来自 @Zxilly 的分享

9、gws:简单、快速的 Go WebSocket 库。该项目是用 Go 编写的 WebSocket 库,它提供了简洁明了的 API,具备高吞吐、低延迟、低内存占用、稳定可靠的特点,可用于高并发场景,支持上下文接管、自定义窗口大小和广播等功能。来自 @道一 的分享

10、river:基于 Postgres 的后台任务管理平台。该项目是基于 Go+Postgres 数据库开发的任务队列,它内置 Web 管理后台,支持自动重试、定时任务和优先级等功能。

11、watermill:快速开发事件驱动应用的 Go 库。这是一个能够高效处理消息流的 Go 库,即发布/接收消息并做出反应。它上手容易,支持 Kafka、RabbitMQ、HTTP 和 MySQL binlog 等消息中间件,适用于处理实时数据流、分布式事务和微服务通信等场景。来自 @DeShuiYu 的分享

// ...
func main() {
saramaSubscriberConfig := kafka.DefaultSaramaSubscriberConfig()
// equivalent of auto.offset.reset: earliest
saramaSubscriberConfig.Consumer.Offsets.Initial = sarama.OffsetOldest subscriber, err := kafka.NewSubscriber(
kafka.SubscriberConfig{
Brokers: []string{"kafka:9092"},
Unmarshaler: kafka.DefaultMarshaler{},
OverwriteSaramaConfig: saramaSubscriberConfig,
ConsumerGroup: "test_consumer_group",
},
watermill.NewStdLogger(false, false),
)
if err != nil {
panic(err)
} messages, err := subscriber.Subscribe(context.Background(), "example.topic")
if err != nil {
panic(err)
} go process(messages)
// ...

Java 项目

12、spring-reading:Spring 源码阅读。这是一份讲解 Spring 源码的图文教程,内容涵盖了 Spring 框架的核心概念和关键功能,而且还贴心地标注了难度等级,更加便于学习。来自 @Lex 的分享

13、xpipe:一键远程登录 Docker 实例的工具。该项目是用于管理远程服务器的桌面工具,它会在 SSH 连接到服务器后,自动检测服务器环境和 shell 类型,实现一键登录各种容器实例(Docker、LXC、WSL),并支持远程文件管理和工具集成等功能。来自 @孤胆枪手 的分享

JavaScript 项目

14、earthworm:让你上瘾的英语学习网站。这是一个开源的在线学习英语网站,支持自托管和本地运行。它采用连词成句、循序渐进的方法帮你学习英语。通过不断地重复形成肌肉记忆,并结合游戏奖励和积分排名的方式,让背单词变得有趣且高效。来自 @Immerse 的分享

15、million:优化 React 组件性能的工具。该项目是专为 React 应用设计的优化编译器,它通过优化虚拟 DOM 和直接更新 DOM 节点,来减少页面更新的耗时,从而提升 React 组件性能,最高可达 70%,支持 VSCode 插件和命令行的使用方式。

16、pouchdb:开源的 JavaScript 数据库。该项目是用 JavaScript 编写、运行在浏览器里的 NoSQL 数据库,它能够在离线状态下将数据存储至本地,并在网络恢复后自动同步数据,保持数据与服务器同步。

var db = new PouchDB('dbname');

db.put({
_id: 'hellogithub-1',
name: 'HelloGitHub',
age: 69
}); db.changes().on('change', function() {
console.log('Ch-Ch-Changes');
}); db.replicate.to('远程数据库地址');

17、stf:通过浏览器控制多台 Android 设备。这是一个用 Node.js 开发的安卓智能设备群测工具,它提供了一个可远程调试多台 Android 设备的 Web 平台,支持 Android 手机和手表等设备。来自 @wang-qa 的分享

18、ua-parser-js:解析 User-Agent 的 JS 库。这是一个用于解析 User-Agent 的库,它可将用户代理字符串解析为 UAParser 对象,便于检测和查看用户的浏览器、操作系统、CPU 和设备型号等信息。

const parser = new UAParser(ua);

console.log(parser.getResult());
/*
{
ua: "Mozilla/5.0 (Linux; Android 10; STK-LX1 Build/HONORSTK-LX1; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/110.0.5481.153 Mobile Safari/537.36 musical_ly_2022803040 JsSdk/1.0 NetType/WIFI Channel/huaweiadsglobal_int AppName/musical_ly app_version/28.3.4 ByteLocale/en ByteFullLocale/en Region/IQ Spark/1.2.7-alpha.8 AppVersion/28.3.4 PIA/1.5.11 BytedanceWebview/d8a21c6",
browser: {
name: "TikTok",
version: "28.3.4",
major: "28"
},
cpu: {},
device: {
type: "mobile",
model: "STK-LX1",
vendor: "Huawei"
},
engine: {
name: "Blink",
version: "110.0.5481.153"
},
os: {
name: "Android",
version: "10"
}
}
*/

PHP 项目

19、openemr:免费的开源医院管理系统。该项目是目前最流行的开源医院管理系统,它集成了医院日常运营所需的所有功能,如预约、患者档案、电子计费和医疗记录等,同时支持中文在内的 30 多种语言。

Python 项目

20、CleanMyWechat:自动删除电脑端微信缓存数据的工具。该项目是用 PyQt5 写的 Windows 工具,它可以清理微信电脑客户端自动下载的无用数据,支持自动识别账号、多账号管理,以及选择清理文件的类型和设置清理多久以前文件等功能。

21、searxng:尊重个人隐私的 Python 元搜索引擎。该项目是基于 Flask 构建的聚合搜索引擎,能够整合来自 70 多个搜索引擎的搜索结果。它安装简单、不追踪用户行为,支持选择搜索引擎、安全搜索和多语言等功能。来自 @孤胆枪手 的分享

22、vulture:Python 的“死”代码侦探。这是一个 Python 的静态代码分析工具,它可以找出 Python 项目中未使用的代码,仅需一条命令,就能清理没用和无效的 Python 函数、变量和代码片段。

23、warp:编写高性能仿真程序的 Python 框架。该项目是英伟达开源的 Python 框架,它通过即时编译技术将 Python 代码,转换为可以在 CPU 或 GPU 上运行的高效内核代码,可用于编写模拟物理环境、碰撞检测和图形处理等程序。

import warp as wp
import numpy as np num_points = 1024 @wp.kernel
def length(points: wp.array(dtype=wp.vec3),
lengths: wp.array(dtype=float)): # thread index
tid = wp.tid() # compute distance of each point from origin
lengths[tid] = wp.length(points[tid]) # allocate an array of 3d points
points = wp.array(np.random.rand(num_points, 3), dtype=wp.vec3)
lengths = wp.zeros(num_points, dtype=float) # launch kernel
wp.launch(kernel=length,
dim=len(points),
inputs=[points, lengths]) print(lengths)

24、wsgidav:基于 WSGI 的 WebDAV 服务器。WebDAV 是一种允许在网络上直接编辑和管理文件的通信协议,多用于文档共享、云存储和文件同步等场景。该项目是用 Python 写的 WebDAV 服务器,可独立运行、自带简单的 Web 界面,支持 MS Office 文档在线编辑和身份验证等功能。

Ruby 项目

25、lolcommits:基于 Git 的程序员自拍。该项目能在每次用 git 提交代码时,自动使用摄像头拍照,并在照片上标记 commit ID,这样不仅可以记录“生活”,还能一眼找到代码的作者。

Rust 项目

26、100-exercises-to-learn-rust:学习 Rust 的 100 个练习。该教程秉承着边学边做的原则,内含大约 100 道练习题和答案,带你从零开始学习 Rust 编程语言。

27、crossbeam:Rust 并发编程工具库。在 Rust 的并发编程世界中,它就像一把瑞士军刀,提供了丰富且强大的无锁并发数据结构和工具,极大地提升了 Rust 并发编程的效率。来自 @DeShuiYu 的分享

28、zellij:更容易上手的终端复用器。该项目是一个 Rust 写的终端多路复用器,支持单窗口多标签、分割窗口和自动恢复连接等功能。它提供了开箱即用的默认配置,同时拥有强大的插件系统,从而深受初学者和高级用户的喜爱。

Swift 项目

29、Loop:一款优雅的 macOS 窗口管理工具。这是一款极简的 macOS 窗口管理应用,它无需复杂的配置,即可通过简单的组合键,轻松实现移动窗口位置、调整窗口大小以及排列窗口,交互十分优雅,使用体验极佳。

30、noTunes:禁用 iTunes 的工具。这是一款 macOS 应用,它可以阻止 iTunes 或 Apple Music 自动启动和弹出,还支持设置 iTunes 的替代品。

其它

31、anx-reader:免费的 Android 电子书阅读器。这是一款用 Flutter 编写的电子书阅读软件,它免费且没广告,支持 WebDAV 同步电子书、笔记和阅读进度,适用于 Android 手机和平板电脑。

32、etcher:简单易用的 USB/SD 启动盘制作工具。该项目可以将操作系统镜像烧录进 SD 卡或 USB 设备,可用于制作可启动、便携式的操作系统。它拥有友好的操作界面,仅需 3 步就能完成 USB 启动盘制作,适用于 Linux、macOS 和 Windows 10 及更高版本。

33、GmsCore:谷歌服务框架的开源替代品。该项目是一个开源的替代 Google Play 服务的解决方案,它可以让无法安装或不想用 Google 服务的用户,运行依赖谷歌服务的 Android 应用。

34、OpenGlass:低成本的 AI 智能眼镜。该项目仅需 25 美元,就可以将普通的眼镜升级成 AI 智能眼镜。它支持录制视频、识别物体和翻译文本等功能,但需要与电脑配合使用,不支持在镜片上显示内容。

35、scribe:用 HTML 的方式展示乐谱。该项目通过 CSS+SVG+HTML 代码,实现了在网页上显示音乐符号和乐谱。

36、WTF-zk:零知识证明入门教程。这是一份入门级的零知识证明教程,零知识证明是一种技术,允许一方在不泄露任何具体信息的情况下向另一方证明某件事为真,多用于密码学、隐私计算和 Web3 等领域。

开源书籍

37、introduction-to-bash-scripting:《Bash 脚本入门指南》。这是一本教你如何编写出色的 Bash 脚本的开源书籍。

38、PyTorch-Tutorial-2nd:《Pytorch 实用教程》。这本书不仅全面介绍了 PyTorch 的基础知识,还包含丰富的 PyTorch 实战案例和大型语言模型部署实例,能帮你快速上手 PyTorch,并具备出色的开发能力。来自 @TingsongYu 的分享

机器学习

39、gateway:大型语言模型 API 聚合网关。该项通过提供统一且快速的 API,让开发者能够轻松访问超过 200 个 LLMs,还支持多模态、自动重试和负载均衡等功能。

40、MoneyPrinterTurbo:一键生成短视频的 AI 工具。该项目是基于大模型服务的 AI 视频生成工具,只需要提供一个主题或关键字,就可以自动生成高清的短视频。它拥有简单易用的 Web 界面,支持批量生成、设置视频时长和横/竖屏尺寸等功能。来自 @jolahua 的分享

41、Omost:极简提示词的文生图工具。该项目基于 LLM 的编程能力帮用户自动完善文生图的提示词,可以根据用户输入的简短提示词生成高质量的图片,还支持图片局部修改等功能,比如将图片中的龙变成恐龙,极大地降低了编写文生图的门槛,无需复杂的提示词即可生成满意的图片。

42、Scrapegraph-ai:基于 AI 的 Python 爬虫。这是一个由 AI 驱动的 Python 爬虫库,它借助 LLM 的能力,可以根据提示词自动抓取目标网站的数据。

smart_scraper_graph = SmartScraperGraph(
prompt="List me all the projects with their descriptions",
source="目标网站",
config=graph_config
) result = smart_scraper_graph.run()
print(result)

最后

感谢参与分​享开源项目的小伙伴们,欢迎更多的开源爱好者来 HelloGitHub 自荐/推荐开源项目。如果你发现了 GitHub 上有趣的项目,就点击这里分享给大家伙吧!

本期有你感兴趣的开源项目吗?如果有的话就留言告诉我吧~如果还没看过瘾,可以点击阅读往期内容。

感谢您的阅读,如果觉得本期内容还不错的话 求赞、求分享

《HelloGitHub》第 99 期的更多相关文章

  1. 《HelloGitHub月刊》第01期

    <HelloGitHub月刊> 因为现在这个项目只有我自己做,只敢叫"月刊",希望有志同道合者,快点加入到这个项目中来!同时,如果您有更好的建议或者意见,欢迎联系我.联 ...

  2. 《HelloGitHub月刊》第 01 期

    <HelloGitHub月刊> 因为现在这个项目只有我自己做,只敢叫"月刊",希望有志同道合者,快点加入到这个项目中来!同时,如果您有更好的建议或者意见,欢迎联系我.联 ...

  3. 家里蹲大学数学杂志 Charleton University Mathematics Journal 官方目录[共七卷493期,6055页]

    家里蹲大学数学杂志[官方网站]从由赣南师范大学张祖锦老师于2010年创刊;每年一卷, 自己有空则出版, 没空则搁置, 所以一卷有多期.本杂志至2016年12月31日共7卷493期, 6055页.既然做 ...

  4. HelloGithub

    <HelloGithub月刊>第一期   <HelloGithub月刊> 因为现在这个项目只有我自己做,只敢叫“月刊”,希望有志同道合者,快点加入到这个项目中来!同时,如果您有 ...

  5. 在 GitHub 学习,成长为自己想要的样子|HelloGitHub 访谈

    万事开头难,我们经过长期的策划和筹备,终于推出了 HelloGitHub 采访系列「开源项目作者的访谈」.这是一个采访个人开源项目作者的栏目,内容侧重于开源项目作者与开源的故事. 我们深知想要做好一个 ...

  6. Day18_集合第四天

    1.Map集合成员方法(掌握) 增加功能 V put(K key, V value) 当key在集合中不存在时,添加元素:当key在集合存在时候,替换元素 删除功能 void clear 清除所有键值 ...

  7. day18<集合框架+>

    集合框架(Map集合概述和特点) 集合框架(Map集合的功能概述) 集合框架(Map集合的遍历之键找值) 集合框架(Map集合的遍历之键值对对象找键和值) 集合框架(Map集合的遍历之键值对对象找键和 ...

  8. Map集合、HashMap集合、LinkedHashMap集合、Hashtable集合、Collections工具类和模拟斗地主洗牌和发牌

    1.Map集合概述和特点 * A:Map接口概述  * 查看API可以知道:          * 将键映射到值的对象          * 一个映射不能包含重复的键          * 每个键最多 ...

  9. 史上最全HashMap遍历方式

    java Hashmap Map TreeMap 的几种遍历方式,全网最全,全网最强 package Collec2; import java.util.HashMap; import java.ut ...

  10. GitHub 热点速览 Vol.17:在?各家视频会员要不要?

    作者:HelloGitHub-小鱼干 摘要:经济实用,用作上周的 GitHub 热点的横批再合适不过.先不说 GitHub Trending 上不止一个的会员共享项目,免你找好友刷脸要会员,这项目实在 ...

随机推荐

  1. c#胖东来小程序自动购物程序(接单,windows桌面程序、linux程序、网络应用等等)

    一.程序效果 自动打开胖东来小程序,自动购物 二.实现 先截屏,然后利用opencv库识别下一步按键所在位置,然后使用mouse_event控制鼠标,模拟人的动作 第一步,截取屏幕 static Bi ...

  2. SQL Server实战四:查询数据库的数据

      本文介绍基于Microsoft SQL Server软件,实现数据库表中多种数据查询方法的具体操作. 目录 1 指定列或全部列查询--查询S表学生记录 2 指定列或全部列查询--查询学生姓名与出生 ...

  3. docker-compose 配置LNMP环境

    仓库地址: https://gitee.com/haima1004/docker-lnmp 参考文档: 视频地址: https://www.bilibili.com/video/BV1S54y1B7K ...

  4. C数据结构线性表:最全链表实战剖析—单 双 循环链表&增删改查

    文章目录 前言 说明1 说明2 A:关于为什么传链表要用二级指针 B:单链表 1:定义结构体 2:初始化链表 3:销毁链表内容 (释放整个链表空间,把L指针赋值为NULL ) 4:增加某一个位置上的元 ...

  5. Java面试题:让依赖注入变得简单,面对@Autowired和@Resource,该如何选择?

    @Autowired和@Resource都是Java Spring框架中的注解,用于实现依赖注入(DI)和控制反转(IoC).它们的区别主要在以下三个方面: 源头不同  @Autowired是Spri ...

  6. 模仿jinja2的模板语言实验,可用于简易框架中

    mcw_str=''' wo shi {{ name }} ''' import re class myclass(): def inithtml(self): ret1 = re.search('{ ...

  7. WPF自定义控件,如何使得xaml涉及器中的修改能立即反应到预览

    这是我无意中发现的,xaml中设置的是依赖属性而不是包装器,所以我们可以直接在注册依赖属性那里设置回调,触发某个控件重绘,比如本身或父控件重绘. xaml设计器就会实时更新 1 // !!!由于xam ...

  8. handsontable多选下拉框编辑器扩展

    一.效果截图 二.文件引用 多选下拉框扩展自handsontable的BaseEditor. 多选下拉框组件由两个文件构成, 一个下拉框样式表MultiSelect.css 一个组件实现脚本Multi ...

  9. GROK 表达式

    GROK 表达式 常用表达式 标识:USERNAME 或 USER 正则:[a-zA-Z0-9._-]+ 名称:用户名 描述:由数字.大小写及特殊字符(._-)组成的字符串 例子:1234.Bob.A ...

  10. Spring 对 Junit4,Junit5 的支持上的运用

    1. Spring 对 Junit4,Junit5 的支持上的运用 @ 目录 1. Spring 对 Junit4,Junit5 的支持上的运用 每博一文案 2. Spring对Junit4 的支持 ...