《HelloGitHub》第 94 期

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

简介

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

github.com/521xueweiha...

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


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

C 项目

1、genann:C 语言写的极简神经网络库。这是一个轻量、无依赖、单文件的 C 语言神经网络库,内含丰富的示例和测试。代码简洁易读,适合作为初学者学习神经网络的入门项目。来自 @ziming012 的分享

c 复制代码
#include "genann.h"

/* Not shown, loading your training and test data. */
double **training_data_input, **training_data_output, **test_data_input;

/* New network with 2 inputs,
 * 1 hidden layer of 3 neurons each,
 * and 2 outputs. */
genann *ann = genann_init(2, 1, 3, 2);

/* Learn on the training set. */
for (i = 0; i < 300; ++i) {
    for (j = 0; j < 100; ++j)
        genann_train(ann, training_data_input[j], training_data_output[j], 0.1);
}

/* Run the network and see what it predicts. */
double const *prediction = genann_run(ann, test_data_input[0]);
printf("Output for the first test data point is: %f, %f\n", prediction[0], prediction[1]);

genann_free(ann);

C# 项目

2、FancyScrollView:Unity 滑动列表插件。该项目采用 Unity 引擎动画系统来定制列表滑动效果,具备非常高的灵活性,除了用作滑动列表,还可以用作导航栏。项目代码结构和风格规范,接入成本低、易于使用和定制。来自 @Wu Zheng 的分享

csharp 复制代码
using UnityEngine;
using UnityEngine.UI;
using FancyScrollView;

class MyCell : FancyCell<ItemData>
{
    [SerializeField] Text message = default;

    public override void UpdateContent(ItemData itemData)
    {
        // 更新内容
        message.text = itemData.Message;
    }

    public override void UpdatePosition(float position)
    {
        // position 是一个介于 0.0 到 1.0 之间的值
        // 可以根据 position 自由控制滚动的外观
    }
}

3、MarkovJunior:基于马尔可夫链的图像生成器。马尔可夫链是一种数学模型,具有"无记忆"的性质,即未来状态的概率分布只依赖于当前状态,而不依赖于过去的状态。该项目利用马尔可夫链原理,通过模拟图像的状态转移来生成独特的图像,包括建筑、迷宫等。

C++ 项目

4、abseil-cpp:谷歌开源的 C++ 基础库。这是一个在 Google 内部被广泛应用的 C++ 公共库,它提供了一系列高质量、可靠、高效的基础模块,其中包括字符串处理、并发、时间、STL 容器、测试、日志等实用函数。来自 @张程林 的分享

5、gpupixel:高性能跨平台实时美颜滤镜库。这是一个用 C++11 编写的高性能图像和视频处理库,内置基于 GPU 的美颜特效滤镜,效果可以达到商业级别水平。支持磨皮、美白、瘦脸、大眼等特效,适用于 iOS、macOS 和 Android 平台。来自 @Zhaoyou Ge 的分享

6、qtrvsim:面向教育的 RISC-V CPU 模拟器。这是一个采用 Qt 实现的 RISC-V CPU 模拟器,由捷克理工大学计算学院开发。

Go 项目

7、copilot-gpt4-service:将 Github Copilot 转成 ChatGPT 的服务。该项目可以将 GitHub Copilot 转换成 ChatGPT 的服务,为什么要这么做呢?因为如果你在 GitHub 上有一个开源项目,就有机会免费使用 Copilot,除此之外学生和老师在完成认证后也可以免费使用 Copilot,一番操作下来就等于白嫖 GPT-4。一定要按照推荐的方式部署,否则有封号风险,仅限自用。来自 @exiaOgW1q 的分享

8、goploy:容易上手的代码发布平台。这是一个采用 Go + Vue.js 构建的 Web 部署平台,可一键部署、发布和回滚项目。支持基于角色的访问控制、监控、秒级定时任务、Xterm、LDAP 等功能,提供了完整的安装引导,即使是初学者也能轻松上手。来自 @zhenorzz 的分享

9、listmonk:开源的邮件列表和营销平台。这是一个开箱即用的邮件营销平台,可以帮助你管理邮件订阅者、创建和发送邮件、分析营销数据。可查看邮件阅读率、链接点击率等,支持自托管适用于个人和企业。

10、restic:一款强大的开源备份工具。该项目提供了简单、快速、安全的开源备份解决方案。它无需繁琐的配置,即可轻松完成备份和恢复操作。采用增量备份策略,备份数据经过加密和压缩处理,保障数据安全且节省空间,支持灵活的存储选择,包括本地磁盘和云存储。可设置自动备份时间,确保数据得到定期的备份保护。

bash 复制代码
$ restic --repo /tmp/backup backup ~/work
enter password for repository:
scan [/home/user/work]
scanned 764 directories, 1816 files in 0:00
[0:29] 100.00%  54.732 MiB/s  1.582 GiB / 1.582 GiB  2580 / 2580 items  0 errors  ETA 0:00
duration: 0:29, 54.47MiB/s
snapshot 40dc1520 saved

11、vfox:无忧应对多编程语言不同版本的工具。这是一款跨平台的通用版本管理工具,通过命令行快速安装、切换编程语言的不同版本,并支持自定义源地址。相比于针对每种语言的独立版本管理工具(如 nvm、fvm、gvm 等),这个项目让开发者摆脱繁琐的学习和记忆过程,只需一个工具、一条命令,轻松搞定多编程语言版本管理。来自 @Han Li 的分享

rust 复制代码
$ vfox c
node -> v20.10.0
java -> v11.0.12

Java 项目

12、1brc:探索 Java 处理 10 亿行文本的最快速度。这是一个有趣的 Java 编程挑战,要求开发者编写一个 Java 程序,读取包含多个气象站温度值的文件(10 亿行),然后计算每个气象站的最小、平均和最大值,最后按照站点名称排序后输出,现在最快速度为 2 秒。

13、automq-for-kafka:一款真正的云原生 Kafka 解决方案。该项目是基于云原生重新设计的新一代 Kafka 发行版。在保持和 Apache Kafka 100%兼容前提下,AutoMQ 可以为用户提供高达 10 倍的成本优势以及百倍的弹性优势,同时支持秒级分区迁移和流量自动重平衡,解决运维痛点。

14、spring-startup-analyzer:优化 Spring Boot 应用启动性能的工具。该项目利用采集 Spring 应用启动过程数据,生成交互式分析报告,为开发者提供了分析 Spring 应用启动性能的工具。其主要功能包括分析启动卡点、处理 Spring Bean 异步初始化,以及显示应用未加载的 jar 包、方法调用次数和耗时统计等详细信息。来自 @linyimin 的分享

JavaScript 项目

15、awesome-hands-control:用手势操控电脑程序的工具。该项目基于手势识别进行自定义操控电脑程序,采用纯前端技术栈实现。它通过训练好的模型(MediaPipe)来识别手势,然后将特定手势与电脑操控绑定,最后,用户可以指定操作的进程,从而实现手势操控电脑程序。来自 @Rylan 的分享

16、bpmn-js:专注于流程图的可视化和编辑组件。该项目提供了直观的拖拽式创建和编辑流程图的功能,可用于构建业务流程管理、决策流可视化和低代码平台。来自 @塔咖 的分享

javascript 复制代码
const xml = '...'; // my BPMN 2.0 xml
const viewer = new BpmnJS({
  container: 'body'
});

try {
  const { warnings } = await viewer.importXML(xml);

  console.log('rendered');
} catch (err) {
  console.log('error rendering', err);
}

17、dockge:一个美观、易用的 Docker Compose 管理平台。该项目提供了一个 Web 界面,用于管理 docker-compose.yaml 文件。它开箱即用、界面设计精美,支持交互式编辑 compose.yaml 文件、更新 docker 镜像,以及启动、停止、重启、删除 docker 等操作。来自 @猎隼丶止戈reNo7 的分享

18、theatre:一个用于创建 Web 动画的 JavaScript 库。该项目是带图形用户界面的 Web 动画编辑器,能对任何 JavaScript 变量进行动画处理。它不仅支持处理 three.js 或其他 3D 库对象的动画功能,还能利用 React 等库对 HTML/SVG 进行动画处理。

19、tiny-rdm:一款轻量级的跨平台 Redis 桌面客户端。该项目是基于 WebView2 的 Redis 桌面客户端,拥有小巧的体积和精美的界面,同时支持中文。它提供了多种连接方式、分段加载、慢日志、转码显示等功能,可以在 Windows、Linux 和 macOS 系统上使用。

Kotlin 项目

20、jingmo:一款古诗词文和成语应用。它叫「京墨」是一个免费的 Android 阅读应用,内含丰富的中国传统文化内容,包括古诗、歇后语、成语故事、中国传统节日、绕口令等。安装应用第一次进入无内容,需要在设置里手动同步数据。来自 @贺丰宝 的分享

Objective-C 项目

21、Itsycal:可爱的 Mac 菜单栏日历。这是一个迷你的菜单栏,拥有可爱的界面和实用的功能,支持显示/添加系统日历的事件、深色模式、周数、快捷键等功能,适用于 macOS 11+ 系统。

22、KeepingYouAwake:防止 Mac 进入睡眠状态的工具。这一个小型的菜单栏实用工具,可以让 Mac 电脑在预设的时间内或永久不进入睡眠模式,适用于 macOS 10.13 或更高版本。

PHP 项目

23、akaunting:专为小型企业和个人设计的在线会计软件。该项目是基于 Laravel+Vue.js+Tailwind CSS+MySQL 构建的会计平台,为用户提供全面的会计和财务功能。其中包括费用跟踪、现金流、报告等,并且支持移动端适配和多语言。

Python 项目

24、DouyinLiveRecorder:一款支持多平台的直播录制工具。该项目是基于 FFmpeg 实现的多平台直播源录制工具,支持循环执行直播录制任务(循环值守)、直播状态推送、多人录制、去水印、选择画质等功能。

25、harlequin:一个简单、快速、美观的终端数据库客户端。这是一个带界面的命令行数据库客户端,提供了数据库和表目录、查询编辑器、显示结果、导出数据的功能,支持 DuckDB、SQLite、Postgres、MySQL 等数据库。

26、khal:一款简单、美观的终端日历。该项目是用 Python 写的命令行日历工具,支持快速便捷地浏览、添加和编辑事件,以及同步日历数据。

27、pyupgrade:一键升级 Python 代码的工具。这是一个用于自动升级 Python 代码,以适应新版本语法的工具。支持升级到不同的 Python 版本、提供预览模式即查看改动变化等功能。

28、text_blind_watermark:给文本加盲水印的 Python 库。通过该项目可以将一段隐秘信息嵌入到明文中,嵌入前后的明文无变化。简单说就是给文本打上隐藏水印,适合在版权保护、数据泄漏溯源、数据安全等场景使用,支持 macOS 的 Chrome 浏览器、苹果备忘录、macOS/iPhone 的微信和钉钉等应用。

python 复制代码
from text_blind_watermark import TextBlindWatermark2

password = 'HelloGitHub'
text = '这句话中有盲水印,你能提取出来吗?'
watermark = 'HelloGitHub'

text_blind_wm = TextBlindWatermark2(password=password)

text_with_wm = text_blind_wm.embed(text=text, watermark=watermark)
print(text_with_wm)

Rust 项目

29、cmd-wrapped:一个 Rust 编写的命令行历史记录分析工具。这是一款命令行工具,它可以读取你的命令行操作历史记录,并生成详细的分析报告。报告包括过去任意一年的命令行活跃时段、常用命令等信息,支持 Zsh、Bash、fish 等。

其它

30、gdb-dashboard:GDB 可视化调试界面。这是专为 GUN 调试器(GDB)设计的文本界面,支持模块化显示调试的程序相关信息,更直观和方便地调试代码。该界面采用 Python 编写,具备轻松自定义和扩展的特性。

31、kubernetes-network-policy-recipes:只需复制粘贴即可解决 K8s 网络问题的配方。该项目包含了 Kubernetes 网络策略的各种用例和示例 YAML 文件,可直接复制使用。

32、network_proxy_flutter:支持手机端的免费抓包工具。该项目是采用 Flutter 开发的抓包工具,可用于拦截、检查和重写 HTTP(S) 流量。它支持扫码连接、域名过滤、请求重写等功能,适用于 Windows、macOS、Linux、Android 和 iOS 平台。

33、particle-life:粒子生命演化游戏。该项目通过定义粒子之间的相互作用力,从而生成复杂的自组织图案。源码十分简单,用户可以在线试玩,创造出各种有趣的图案。

34、vimwiki:Vim 中的个人 wiki。这是一个 Vim 插件,通过以 wiki 的方式连接文本,提供更好的组织笔记和想法的功能。

开源书籍

35、game-programming-patterns:《游戏编程模式》。该书收集了经过验证、已发布的 3A 级游戏中的经验和模式,来解决你在游戏开发中遇到的问题。

36、PDF-Explained:《PDF 解析》。该项目是《PDF Explained》一书的非官方中文翻译版,内容由浅入深介绍了如何构建简单的 PDF 文件,以及 PDF 运算符、书签、超链接、注释、加密等高级特性。

机器学习

37、AnimateDiff:让 AI 生成的图动起来。这是一款可以在 Stable Diffusion 中制作动图的库,支持将大多数开源模型转换为动画生成器。让原本通过文字生成的图片,变成 gif 图片动起来。来自 @adoin 的分享

38、AnyText:轻松 DIY 图片文字,定制你的创意设计。该项目提供了文字生成和文字编辑两种模式,它能够根据提示词生成图文融合的图片,并确保文字的准确性,还支持对上传图片中的文字进行编辑后,重新生成图片。支持中文、英语、日语、韩语等多语言,适用于海报设计、Logo 设计、创意涂鸦、表情包等场景。

39、pyvideotrans:开源的视频翻译和配音工具。该项目可以将视频从一种语言翻译成指定语言的视频,并自动生成和添加对应语言的字幕和配音。来自 @okaymyworld 的分享

40、StreamDiffusion:实时交互式 AIGC 图片。该项目能以惊人的速度生成 AIGC 图像,单张 RTX4090 显卡可达 100 张/秒。它通过流批处理简化数据处理,采用残差无分类器(RCFG)减少计算冗余,随机相似性过滤器提高 GPU 利用率,并通过优化 IO 队列实现并行处理。同时,利用多种模型加速工具,实现爆炸式地提升 AIGC 图像速度。

最后

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

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

那么,下个月 28 号 不见不散,完结撒花🎉

相关推荐
天蓝蓝2352839 分钟前
PyTorch开源的深度学习框架
pytorch·深度学习·开源
customer0842 分钟前
【开源免费】基于SpringBoot+Vue.JS网上购物商城(JAVA毕业设计)
java·vue.js·spring boot·后端·开源
老肖相当外语大佬1 小时前
反DDD模式之“复用”
开源·实战·ddd·领域驱动设计
工业甲酰苯胺2 小时前
分享3款开源、免费的Avalonia UI控件库
ui·开源
布瑞泽的童话2 小时前
无需切换平台?TuneFree如何搜罗所有你爱的音乐
前端·vue.js·后端·开源
小强在此6 小时前
基于开源鸿蒙(OpenHarmony)的【智能家居综合应用】系统
华为·开源·智能家居·团队开发·harmonyos
Rense115 小时前
开源RK3588 AI Module7,并与Jetson Nano生态兼容的低功耗AI模块
人工智能·开源
程序员皮皮林19 小时前
开源PDF工具 Apache PDFBox 认识及使用(知识点+案例)
java·pdf·开源·apache
MinIO官方账号1 天前
从 HDFS 迁移到 MinIO 企业对象存储
人工智能·分布式·postgresql·架构·开源
giszz1 天前
【开源大模型生态9】百度的文心大模型
人工智能·开源