《HelloGitHub》第 94 期
HelloGitHub 分享 GitHub 上有趣、入门级的开源项目,每月 28 号更新一期。这里有好玩和入门级的开源项目、开源书籍、实战项目、企业级项目,让你用极短的时间感受到开源的魅力,对开源产生兴趣。
C 语言写的极简神经网络库。这是一个轻量、无依赖、单文件的 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);
Unity 滑动列表插件。该项目采用 Unity 引擎动画系统来定制列表滑动效果,具备非常高的灵活性,除了用作滑动列表,还可以用作导航栏。项目代码结构和风格规范,接入成本低、易于使用和定制。
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 自由控制滚动的外观 } }
基于马尔可夫链的图像生成器。马尔可夫链是一种数学模型,具有“无记忆”的性质,即未来状态的概率分布只依赖于当前状态,而不依赖于过去的状态。该项目利用马尔可夫链原理,通过模拟图像的状态转移来生成独特的图像,包括建筑、迷宫等。
谷歌开源的 C++ 基础库。这是一个在 Google 内部被广泛应用的 C++ 公共库,它提供了一系列高质量、可靠、高效的基础模块,其中包括字符串处理、并发、时间、STL 容器、测试、日志等实用函数。
高性能跨平台实时美颜滤镜库。这是一个用 C++11 编写的高性能图像和视频处理库,内置基于 GPU 的美颜特效滤镜,效果可以达到商业级别水平。支持磨皮、美白、瘦脸、大眼等特效,适用于 iOS、macOS 和 Android 平台。
容易上手的代码发布平台。这是一个采用 Go + Vue.js 构建的 Web 部署平台,可一键部署、发布和回滚项目。支持基于角色的访问控制、监控、秒级定时任务、Xterm、LDAP 等功能,提供了完整的安装引导,即使是初学者也能轻松上手。
开源的邮件列表和营销平台。这是一个开箱即用的邮件营销平台,可以帮助你管理邮件订阅者、创建和发送邮件、分析营销数据。可查看邮件阅读率、链接点击率等,支持自托管适用于个人和企业。
一款强大的开源备份工具。该项目提供了简单、快速、安全的开源备份解决方案。它无需繁琐的配置,即可轻松完成备份和恢复操作。采用增量备份策略,备份数据经过加密和压缩处理,保障数据安全且节省空间,支持灵活的存储选择,包括本地磁盘和云存储。可设置自动备份时间,确保数据得到定期的备份保护。
$ 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
无忧应对多编程语言不同版本的工具。这是一款跨平台的通用版本管理工具,通过命令行快速安装、切换编程语言的不同版本,并支持自定义源地址。相比于针对每种语言的独立版本管理工具(如 nvm、fvm、gvm 等),这个项目让开发者摆脱繁琐的学习和记忆过程,只需一个工具、一条命令,轻松搞定多编程语言版本管理。
$ vfox c node -> v20.10.0 java -> v11.0.12
探索 Java 处理 10 亿行文本的最快速度。这是一个有趣的 Java 编程挑战,要求开发者编写一个 Java 程序,读取包含多个气象站温度值的文件(10 亿行),然后计算每个气象站的最小、平均和最大值,最后按照站点名称排序后输出,现在最快速度为 2 秒。
一款真正的云原生 Kafka 解决方案。该项目是基于云原生重新设计的新一代 Kafka 发行版。在保持和 Apache Kafka 100%兼容前提下,AutoMQ 可以为用户提供高达 10 倍的成本优势以及百倍的弹性优势,同时支持秒级分区迁移和流量自动重平衡,解决运维痛点。
优化 Spring Boot 应用启动性能的工具。该项目利用采集 Spring 应用启动过程数据,生成交互式分析报告,为开发者提供了分析 Spring 应用启动性能的工具。其主要功能包括分析启动卡点、处理 Spring Bean 异步初始化,以及显示应用未加载的 jar 包、方法调用次数和耗时统计等详细信息。
用手势操控电脑程序的工具。该项目基于手势识别进行自定义操控电脑程序,采用纯前端技术栈实现。它通过训练好的模型(MediaPipe)来识别手势,然后将特定手势与电脑操控绑定,最后,用户可以指定操作的进程,从而实现手势操控电脑程序。
专注于流程图的可视化和编辑组件。该项目提供了直观的拖拽式创建和编辑流程图的功能,可用于构建业务流程管理、决策流可视化和低代码平台。
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); }
一个美观、易用的 Docker Compose 管理平台。该项目提供了一个 Web 界面,用于管理 docker-compose.yaml 文件。它开箱即用、界面设计精美,支持交互式编辑 compose.yaml 文件、更新 docker 镜像,以及启动、停止、重启、删除 docker 等操作。
一个用于创建 Web 动画的 JavaScript 库。该项目是带图形用户界面的 Web 动画编辑器,能对任何 JavaScript 变量进行动画处理。它不仅支持处理 three.js 或其他 3D 库对象的动画功能,还能利用 React 等库对 HTML/SVG 进行动画处理。
一款轻量级的跨平台 Redis 桌面客户端。该项目是基于 WebView2 的 Redis 桌面客户端,拥有小巧的体积和精美的界面,同时支持中文。它提供了多种连接方式、分段加载、慢日志、转码显示等功能,可以在 Windows、Linux 和 macOS 系统上使用。
一款古诗词文和成语应用。它叫「京墨」是一个免费的 Android 阅读应用,内含丰富的中国传统文化内容,包括古诗、歇后语、成语故事、中国传统节日、绕口令等。安装应用第一次进入无内容,需要在设置里手动同步数据。
可爱的 Mac 菜单栏日历。这是一个迷你的菜单栏日历工具,拥有可爱的界面和实用的功能。支持显示/添加系统日历的事件、深色模式、周数、快捷键等功能,适用于 macOS 11+ 系统。
防止 Mac 进入睡眠状态的工具。这一个小型的菜单栏实用工具,可以让 Mac 电脑在预设的时间内或永久不进入睡眠模式,适用于 macOS 10.13 或更高版本。
专为小型企业和个人设计的在线会计软件。该项目是基于 Laravel+Vue.js+Tailwind CSS+MySQL 构建的会计平台,为用户提供全面的会计和财务功能。其中包括费用跟踪、现金流、报告等,并且支持移动端适配和多语言。
一款支持多平台的直播录制工具。该项目是基于 FFmpeg 实现的多平台直播源录制工具,支持循环执行直播录制任务(循环值守)、直播状态推送、多人录制、去水印、选择画质等功能。
一个简单、快速、美观的终端数据库客户端。这是一个带界面的命令行数据库客户端,提供了数据库和表目录、查询编辑器、显示结果、导出数据的功能,支持 DuckDB、SQLite、Postgres、MySQL 等数据库。
一键升级 Python 代码的工具。这是一个用于自动升级 Python 代码,以适应新版本语法的工具。支持升级到不同的 Python 版本、提供预览模式即查看改动变化等功能。
给文本加盲水印的 Python 库。通过该项目可以将一段隐秘信息嵌入到明文中,嵌入前后的明文无变化。简单说就是给文本打上隐藏水印,适合在版权保护、数据泄露溯源、数据安全等场景使用,支持 macOS 的 Chrome 浏览器、苹果备忘录、macOS/iPhone 的微信和钉钉等应用。
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 编写的命令行历史记录分析工具。这是一款命令行工具,它可以读取你的命令行操作历史记录,并生成详细的分析报告。报告包括过去任意一年的命令行活跃时段、常用命令等信息,支持 Zsh、Bash、fish 等。
让 AI 生成的图动起来。这是一款可以在 Stable Diffusion 中制作动图的库,支持将大多数开源模型转换为动画生成器。让原本通过文字生成的图片,变成 gif 图片动起来。
轻松 DIY 图片文字,定制你的创意设计。该项目提供了文字生成和文字编辑两种模式,它能够根据提示词生成图文融合的图片,并确保文字的准确性,还支持对上传图片中的文字进行编辑后,重新生成图片。支持中文、英语、日语、韩语等多语言,适用于海报设计、Logo 设计、创意涂鸦、表情包等场景。
实时交互式 AIGC 图片。该项目能以惊人的速度生成 AIGC 图像,单张 RTX4090 显卡可达 100 张/秒。它通过流批处理简化数据处理,采用残差无分类器(RCFG)减少计算冗余,随机相似性过滤器提高 GPU 利用率,并通过优化 IO 队列实现并行处理。同时,利用多种模型加速工具,实现爆炸式地提升 AIGC 图像速度。
GDB 可视化调试界面。这是专为 GNU 调试器(GDB)设计的文本界面,支持模块化显示调试的程序相关信息,更直观和方便地调试代码。该界面采用 Python 编写,具备轻松自定义和扩展的特性。
只需复制粘贴即可解决 K8s 网络问题的配方。该项目包含了 Kubernetes 网络策略的各种用例和示例 YAML 文件,可直接复制使用。
粒子生命演化游戏。该项目通过定义粒子之间的相互作用力,从而生成复杂的自组织图案。源码十分简单,用户可以在线试玩,创造出各种有趣的图案。
支持手机端的免费抓包工具。该项目是采用 Flutter 开发的抓包工具,可用于拦截、检查和重写 HTTP(S) 流量。它支持扫码连接、域名过滤、请求重写等功能,适用于 Windows、macOS、Linux、Android 和 iOS 平台。
《游戏编程模式》。该书收集了经过验证、已发布的 3A 级游戏中的经验和模式,来解决你在游戏开发中遇到的问题。
《PDF 解析》。该项目是《PDF Explained》一书的非官方中文翻译版,内容由浅入深介绍了如何构建简单的 PDF 文件,以及 PDF 运算符、书签、超链接、注释、加密等高级特性。
- C 项目
- C# 项目
- C++ 项目
- Go 项目
- Java 项目
- JavaScript 项目
- Kotlin 项目
- Objective-C 项目
- PHP 项目
- Python 项目
- Rust 项目
- 人工智能
- 其它
- 开源书籍