《HelloGitHub》第 72 期
HelloGitHub 分享 GitHub 上有趣、入门级的开源项目,每月 28 号更新一期。这里有好玩和入门级的开源项目、开源书籍、实战项目、企业级项目,让你用极短的时间感受到开源的魅力,对开源产生兴趣。
一款强大的密码恢复工具。破解速度超快支持多种算法,适用于 Linux、macOS 和 Windows 操作系统
安装:brew install hashcat 常用参数: -a 指定破解模式:“-a 0”字典攻击,“-a 1” 组合攻击;“-a 3”掩码攻击 -m 指定要破解的 hash 类型:默认为 MD5 --force 忽略破解过程中的警告 常用破解模式: 0:Straight(字典破解) 1:Combination(组合破解) 3:Brute-force(掩码暴力破解) 6:Hybrid Wordlist + Mask(字典+掩码破解) 7:Hybrid Mask + Wordlist(掩码+字典破解) 常用掩码设置: l:纯小写字母 abcdefghijklmnopqrstuvwxyz u:纯大写字母 ABCDEFGHIJKLMNOPQRSTUVWXYZ d:纯数字 0123456789 举例:破解 8 位数字密码 hashcat -a 3 -m 0 --force 0D7002A70CCDE8BF4BA2A4A5572A85E9(密码md5字符串) ?l?l?l?l?l?l?l?l?l?l?l(11 位密码的掩码)
适用于 ASP.NET Core 的轻量级插件框架。开箱即用自带插件管理 Web 界面
public void ConfigureServices(IServiceCollection services) { // ... // 1. Add PluginCore services.AddPluginCore(); } public void Configure(IApplicationBuilder app, IWebHostEnvironment env) { // ... // 2. Use PluginCore app.UsePluginCore(); }
在 C++ 上实现类似 Go goroutine 的库。它实现了协程同步事件、协程锁、协程池、channel、waitgroup,内存占用少实测 1000 万协程占用 2.8G 内存
#include "co/co.h" DEF_main(argc, argv) { co::Chan<int> ch; go([ch]() { /* capture by value, rather than reference */ ch << 7; }); int v = 0; ch >> v; LOG << "v: " << v; return 0; }
Go 语言的数据处理库。该库提供了类似 Python 语言 Pandas 库的功能,以及 Series 和 DataFrames 的数据结构,支持用列的方式高效地处理数据
type User struct { Name string Age int Accuracy float64 } users := []User{ {"Aram", 17, 0.2}, {"Juan", 18, 0.8}, {"Ana", 22, 0.5}, } df := dataframe.LoadStructs(users) fmt.Println(df) // Output: // [3x3] DataFrame // // Name Age Accuracy // 0: Aram 17 0.200000 // 1: Juan 18 0.800000 // 2: Ana 22 0.500000 // <string> <int> <float>
Go 的高性能多语言分词库。它是结巴分词的 Go 语言实现,支持中文和接入 ES 等功能
text = "《复仇者联盟3:无限战争》是全片使用IMAX摄影机拍摄制作的的科幻片." // use DAG and HMM hmm := seg.Cut(text, true) fmt.Println("cut use hmm: ", hmm) // cut use hmm: [《复仇者联盟3:无限战争》 是 全片 使用 imax 摄影机 拍摄 制作 的 的 科幻片 .]
运行于 Android 操作系统的钩子框架。支持 Android 8 以上,能够拦截几乎所有 Java 函数的调用,从而可被用来修改 Android 系统和软件的功能
简单、零依赖、响应式的 SVG 图表库
const data = { labels: ["12am-3am", "3am-6pm", "6am-9am", "9am-12am", "12pm-3pm", "3pm-6pm", "6pm-9pm", "9am-12am" ], datasets: [ { name: "Some Data", chartType: "bar", values: [25, 40, 30, 35, 8, 52, 17, -4] }, ... ]} const chart = new frappe.Chart("#chart", { // or a DOM element, // new Chart() in case of ES6 module with above usage title: "My Awesome Chart", data: data, type: 'axis-mixed', // or 'bar', 'line', 'scatter', 'pie', 'percentage' height: 250, colors: ['#7cd6fd', '#743ee2'] })
用于滚动时创建平滑和好看动画的库。简单轻量仅 4KB 大小,但功能齐全且灵活
<!-- JS --> <script> window.onload = function () { lax.init() // Add a driver that we use to control our animations lax.addDriver('scrollY', function () { return window.scrollY }) // Add animation bindings to elements lax.addElements('.selector', { scrollY: { translateX: [ ["elInY", "elCenterY", "elOutY"], [0, 'screenWidth/2', 'screenWidth'], ] } }) } </script> <!-- HTML --> <div class="selector">Hello</div>
极小的键盘事件监听库
import tinykeys from "tinykeys" tinykeys(window, { "Shift+D": () => { alert("The 'Shift' and 'd' keys were pressed at the same time") }, "y e e t": () => { alert("The keys 'y', 'e', 'e', and 't' were pressed in order") }, "$mod+KeyD": () => { alert("Either 'Control+d' or 'Meta+d' were pressed") }, })
自定义 UINavigationBar 的组件,用于各种状态之间平滑切换
运行在终端里的口袋妖怪类游戏。虽然游戏图像采用简单的 ASCII 码构建,但商店、小精灵、对战等功能一应俱全
运行方法: # pip install scrap_engine $ git clone https://github.com/lxgr-linux/pokete.git $ ./pokete/pokete.py
简单实用的删除图像背景/抠图工具
from rembg import remove from PIL import Image input_path = 'input.png' output_path = 'output.png' input = Image.open(input_path) output = remove(input) output.save(output_path)
用 Python 开发的电商平台。采用 Django+GraphQL API+React 构建,功能丰富支持移动端、订单、商品、用户管理等。在线体验
计算文本距离的常用算法库。包含计算文本相似度、多样性、编辑距离、压缩等多种算法,所有算法均采用 Python 实现,容易理解调用方便
import textdistance textdistance.hamming.normalized_similarity('test', 'text') # 相似度为 0.75
免费开源的 macOS 状态栏一键设置工具。可以轻松对系统功能进行设置,如隐藏桌面图标、清理 Xcode 缓存、一键隐藏刘海儿、进入夜览模式等数十种功能
深度学习在图像处理方面的教程。该项目配以视频的方式介绍知识点和搭建方法,对应的 PTT 在 course_ppt 目录下
一款易用的神经搜索框架。神经搜索是指用非结构化数据,搜索非结构化数据。Jina 简化了神经搜索系统的搭建流程,使开发者可以快速构建以图搜图、以文字搜图、问答机器人、照片去重、海量标签分类等应用
from docarray import Document, DocumentArray from jina import Executor, Flow, requests class PreprocImg(Executor): @requests async def foo(self, docs: DocumentArray, **kwargs): for d in docs: ( d.load_uri_to_image_tensor(200, 200) # load .set_image_tensor_normalization() # normalize color .set_image_tensor_channel_axis( -1, 0 ) # switch color axis for the PyTorch model later )
用 Rust 从零开发一个操作系统的教程。保姆级教程!从空文件夹开始,一步步搭建开发环境,通过原理描述、代码示例讲解操作系统背后的原理。硬要说缺点的话就是教程是英文的,但是配上代码示例读起来不是很费劲。中文
自制桌面级小机器人。它具备 USB 通信显示画面功能以及 6 个自由度,支持手势识别和人体关键点检测。这里有配套的全部开发资料和 SDK,让你也可以制作出一个这样有趣的机器人
大型英语单词文本。它是基于 WordNet 英语词汇数据库整理的文本文件,可用于英语自动提示、自动搜索等功能
《微前端的那些事儿》 将 Web 应用由单一的单体应用,转变为多个小型前端应用聚合为一的应用
- C 项目
- C# 项目
- C++ 项目
- CSS 项目
- Go 项目
- Java 项目
- JavaScript 项目
- Kotlin 项目
- Objective-C 项目
- Python 项目
- Swift 项目
- 人工智能
- 其它
- 开源书籍