兴趣是最好的老师,HelloGitHub 让你对编程感兴趣!
简介
HelloGitHub 共享 GitHub 上风趣、入门级的开源项目。
这里有实战项目、入门教程、黑科技、开源书本、大厂开源项目等,涵盖多种编程言语 Python、Java、Go、C/C 、Swift…让你在短时间内感受到开源的魅力,对编程发生兴趣!
以下为本期内容|每个月 28 号更新
C 项目
1、genann:C 言语写的极简神经网络库。这是一个轻量、无依靠、单文件的 C 言语神经网络库,内含丰厚的示例和测试。代码简洁易读,合适作为初学者学习神经网络的入门项目。来自 @ziming012 的共享
#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, %fn", prediction[0], prediction[1]);
genann_free(ann);
C# 项目
2、FancyScrollView:Unity 滑动列表插件。该项目选用 Unity 引擎动画体系来定制列表滑动作用,具备非常高的灵敏性,除了用作滑动列表,还能够用作导航栏。项目代码结构和风格标准,接入成本低、易于运用和定制。来自 @Wu Zheng 的共享
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:一款强大的开源备份东西。该项目供给了简略、快速、安全的开源备份处理方案。它无需繁琐的装备,即可轻松完成备份和恢复操作。选用增量备份战略,备份数据经过加密和压缩处理,保障数据安全且节约空间,支撑灵敏的存储挑选,包含本地磁盘和云存储。可设置主动备份时间,保证数据得到定期的备份维护。
$ 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 的共享
$ 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:专心于流程图的可视化和修改组件。该项目供给了直观的拖拽式创建和修改流程图的功用,可用于构建业务流程办理、决议计划流可视化和低代码渠道。来自 @塔咖 的共享
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 的微信和钉钉等使用。
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 可视化调试界面。这是专为 GNU 调试器(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 号 不见不散,完结撒花