ADoyle’s Dev Toolbox

ADoyle 的开发工具箱。持续更新中。https://tools.adoyle.me

本文档只记录我在用的工具,所以

  1. 当我不用了或者找到更好的替代品,会移除旧记录。
  2. 不接受 Pull Request。有想法可以在 Discussions 交流。

在网页端,搜索英文建议用最上方的搜索框,体验比较好。 搜索框不支持中文,搜中文信息建议用浏览器自带的搜索功能。

Copyright 2016-2024 ADoyle ([email protected]). Some Rights Reserved. The project is licensed under the BSD 3-clause License.

Read the LICENSE file for the specific language governing permissions and limitations under the License.

Read the NOTICE file distributed with this work for additional information regarding copyright ownership.

说明

  • 表示 开源软件。本文档大部分都是开源的,所以只注明特别的软件;
  • 表示兼容 Mac 平台
  • 表示兼容 Linux 平台
  • 表示兼容 Windows 平台
  • 表示可以通过 Homebrew 安装;
  • 表示 Web 服务
  • 表示 Chrome 插件;

TOC

其他

  • hashcat: 很快的密码破解工具
  • irssi: IRC Client
  • screenFetch: 获取系统信息
    • neofetch: 终端中打印系统信息,纯 Bash 实现。
  • franc: 自然语言语种推测
  • etcher: 将系统镜像写入外接硬盘的工具
  • browserless: Chrome as a service in docker
  • UnblockNeteaseMusic: 解锁网易云音乐客户端变灰歌曲
  • Bilibili-Evolved: 强大的哔哩哔哩油猴脚本
  • insect: 很不错的计算器,单位换算很方便。提供网页在线服务,也提供终端程序。开源。跨平台。
  • asdf: 通用的程序版本管理工具。类似 gvm、nvm、rbenv,不过每种语言管理器作为 asdf plugin 使用。
  • 7zip: 免费开源的压缩软件。支持多种压缩算法、多种压缩等级、加密、分片。支持命令行和桌面端。
  • OSX-KVM: 在 KVM 里运行 MacOS
  • Docker-OSX: 在 Docker 里运行 MacOS
  • go-musicfox: 在终端里听网易云音乐
  • upx: 压缩可执行文件
  • wakeonlan: 网络唤醒工具
  • plasmo: 浏览器插件开发框架
  • homepage: 用 YAML 配置的导航首页。简单好用。

养生

教你搜索

历史遗珠

那些有意义却不为众人所知或被众人遗忘的项目。

社区

  • Tech Talks: 纯技术交流的中文论坛。
  • V2EX: 创意工作者们的社区。

输入法

手册

Cheatsheet 管理器

  • Dash: 桌面程序。Mac 专用。
  • http://devdocs.io/ : 社区维护内容。在线网页,也支持 PWA。开源的
  • zealdocs: 桌面程序。跨平台
  • cheat: 命令行工具,本地存储,支持多 cheatsheets 扩展。这个仓库只有程序,需要下载官方 cheatsheets 配合使用。还可以 cheat -e 自己编辑维护。
  • tldr: 命令行工具,手册内容由社区维护,非常详尽。

Cheatsheet

编译

  • llvm
  • https://godbolt.org/ : 在线预览汇编码的工具,支持各种版本和架构下的 clang,gcc,甚至还能查看 wasm 指令。

自动化

  • maestro: 使用声明式语法,在移动端执行自动化操作。

CI/CD

  • drone: Drone is a Continuous Delivery platform built on Docker, written in Go
  • GoCD: written in java
  • Travis CI: 付费服务

自动化构建

自动化机器人

  • hubot: 交互机器人
  • robotjs: 用 NodeJS 定制 GUI 自动化流程。支持 Windows, Mac, Linux 系统
  • botpress: 聊天机器人。TS 实现的。
  • rasa: 聊天机器人。Python 实现的。

财务

  • beancount: 复式记账语言,纯文本编辑,命令行操作,提供类似 SQL 的查询
  • fava: beancount 的 Web 界面
  • double-entry-generator: 根据支付宝、微信的账单生成 beancount 代码

短信

统计数据

地理数据

网络数据

伪数据

政务信息

法律

知法才能避免犯法。写程序也容易违法。

数学

桌面应用开发

  • electron: 用 Web 技术栈开发跨平台的桌面应用
  • tauri: 用 Web + Rust + JS 开发跨平台的桌面应用。Web 技术做窗口渲染,Rust 做后端引擎。linux 下使用 GTK + WebKitGTK,windows 使用 windows-rs + WebView2,MacOS 使用 AppKit + WKWebView。Android 和 iOS 的支持还在开发中。包大小、内存占用,都优于 electron。

Authorization

  • casbin: 一个类库。通过设计 PERM 模型来控制认证策略。支持 ACL, RBAC, ABAC 等策略。支持主流语言。
  • hydra: OpenID Connect and OAuth Provider written in Go
    • dex: 备选方案
  • 2FAS: 2FA 客户端,支持 iOS 和 Android。支持 TOTP 和 HOTP。用户体验好,功能丰富。开源。支持浏览器插件(同步需要翻墙)
  • otpauth: 导出 Google Authenticator 里存储的数据

开源项目

Ansible

Semver

RFC

License

Github

SVG

代码质量检查

安全

社工库

漏洞信息平台

漏洞靶场

架构

Checklist

编辑器/IDE

代码编辑器

富文本编辑器 WYSIWYG

Online IDE

IDE 辅助工具

Telegram

下载工具

终端 Terminal

  • iTerm2: Mac 系统,推荐用这个终端
  • Windows Terminal: Windows 系统,推荐用这个终端
  • Hyper: 用前端技术栈做的终端。非常酷炫
  • tabby: 前端技术栈做的终端,可以用 CSS 定制界面,功能完善,支持 Windows/MacOS/Linux。注意:关闭「输入时滚动」选项,否则很容易屏幕闪烁。缺点:无法输入中文标点。
  • cathode: 复古终端模拟器
  • xterm.js: A terminal for the web
  • edex-ui: 非常酷!

diff

  • diff: linux 内置命令
  • diffstat: linux 内置命令 diff -u | diffstat -C
  • diff-so-fancy: 超酷的 diff 着色增强工具,但只能用管道输出,仍需借助 diff 或 git diff 工具。
    • delta: 语义化 Diff,功能丰富。Git 配置不友好
    • difftastic: 基于 tree-sitter 的 diff。Git 配置不友好
  • diff2html-cli: 将 diff 文件转成 HTML 页面的形式预览。非常漂亮
  • Kaleidoscope: Diff GUI 软件。支持比较文本、图片、目录

image diff

逆向工程

二进制分析

  • kaitai: 可以用 YAML 描述二进制文件的格式,从而解析二进制文件提取出自己想要的信息。它根据 YAML 生成各种语言的库。
  • Ghidra: 美国国家安全局开源的逆向工程框架
  • protobuf-inspector: 逆向解析 protobuf
  • radare2: 逆向解析二进制文件的命令行工具集
    • iaito: radare2 的 GUI 工具
  • binwalk: 固件分析工具。

结构化数据处理

  • dasel: JSON, TOML, YAML, XML, CSV 增删改查、格式转换工具。缺点:无法直接 put 数组。
  • miller: 「待评价,看起来参数很复杂」like awk, sed, cut, join, and sort for data formats such as CSV, TSV, JSON, JSON Lines, and positionally-indexed.
  • Structured text tools
  • Awesome JSON - What’s Next?
  • 我喜欢的面向人类的配置文件语法
  • 面向机器数据结构语法
    • JSON

YAML

HCL

JSON

JSON Schema

JSON Path

Lint

Mock

网站

SSL

  • lego: 免费证书生成工具。简单好用,文档清晰。
    • certbot: 备选方案。letsencrypt 官方证书生成工具
    • acme.sh: 备选方案。支持 ZeroSSL.com、Letsencrypt.org、BuyPass.com、SSL.com、Pebble strict Mode,以及其他遵循 RFC8555 的 CA。支持模式 Webroot,Standalone,Standalone tls-alp,Apach,Nginx,DNS,DNS alias,Stateless。
    • dehydrated: 备选方案
  • mkcert: 零配置生成自签名证书。默认有效时间 825 天。
  • Fishdrowned/ssl: 零配置生成自签名证书。比 mkcert 提供更丰富的配置选项。

BSD

Linux

命令行 CLI

Shell Script Development

文件同步/备份/快照

  • syncthing: 文件自动同步
  • tar
  • rsync
  • rclone: rsync for cloud storage. To sync files and directories to and from different cloud storage providers.
  • restic: 简单易用的备份工具。支持快照,加密。可与 rclone 搭配。不支持软链接,restore 会报错
  • timeshift: 备选方案。基于 rsync + hard link。支持快照、增量备份、BTRFS、自定义路径(默认屏蔽用户目录)。不支持云存储
  • bupstash: 据说性能很高
  • borg: 备选方案
  • duplicity: 支持增量备份,软链接。不支持硬链接。
    • duply: duplicity 的前端程序
  • rescuezilla: 专门用来备份和恢复的 Linux 系统。基于 ubuntu。支持压缩。不支持加密。兼容 Clonezilla 导出的备份文件。支持各种虚拟硬盘(vdi、b)。图形化界面。有中文。全盘备份,不支持按文件备份。自带镜像文件浏览器
    • Clonezilla: 备选方案。备份和恢复系统。命令行交互菜单。全盘备份,不支持按文件备份,不支持快照。使用命令行备份貌似难度很高。还原到不同大小分区也可能出问题。
  • FreeFileSync: 跨平台、开源。同步目录文件,可以 diff 文件列表。GUI 工具。
  • 其他备份工具

数据恢复

ISO 镜像制作与刻录

  • mkisofs: 制作 ISO 镜像。Linux 命令
  • 制作启动 U 盘
    • Ventoy: 支持多个不同类型的镜像共存。只支持在 Windows/Linux/虚拟机 制作。
    • rufus: 操作简单,可配置。只支持在 Windows 制作。
    • etcher: 一键操作,不可配置。支持在 Windows/MacOS/Linux(不支持命令行)制作。
    • bootiso: 只支持在 Linux 制作,且用于安装 Linux 系统。

数据库/存储

  • DataGrip: 数据库 GUI
  • mycli: mysql 命令行客户端
  • pgcli: postgres 命令行客户端
  • pgweb: postgres web 客户端
  • medis: Redis GUI Client
  • SQL 速查表
  • UNQLite:
  • SQLite
  • vitess: MySQL Sharding Proxy。支持 k8s。Youtube 2011 年就开始跑了。
  • dolt: 功能类似 Git 的数据库
  • minio: 对象存储,高性能,K8S-Native
  • ceph: 块存储,对象存储,文件存储
  • alist: 支持多种云盘存储的文件管理程序。支持在线浏览图片、视音频。支持流式传输。
    • xlist: alist 的 iOS 和 Android 客户端。

Embeddable DB

  • LokiJS: javascript embeddable / in-memory database
  • BuntDB: an embeddable, in-memory key/value database for Go with custom indexing and geospatial support

数据库设计

  • sqldbm: 目前做的最好(没有之一)的 ER 建模工具,目前免费。
  • https://dbdiagram.io/ : 在线 ER 建模工具,通过 dbml 语法构建 ER 图。支持导出 SQL。

Database Versioning

  • flyway: 用 Java 写的,支持 SQL 和 Java 写 migration。没有 revert 概念。
  • gh-ost: 与 flyway 不一样的实现方案,创建 shadow/ghost 表来作 schema migration。功能丰富。不基于 trigger,基于 bin-log。
  • migrate: 用 Go 写的,支持 SQL,支持命令行和 Go 编程。
  • sql-migrate: 用 Go 写的。备选

网络

ProtoBuf

IM

Git

Chrome

Bookmarklet

测试

字符串测试

附赠一个笑话,一个 Bug 测试员走进一家酒吧

HTTP Benchmark

基准测试 (Benchmark Test)

压测 (Stress Test)

  • stress-ng: 对 CPU、内存、IO 的压力测试
  • FIO: 测试硬盘 IO。开源。
  • Geekbench: 对操作系统的压测工具。闭源。压测报告会自动上传到官网,多个压测报告可以进行比较。

密码相关

加密/解密

  • GPG
  • keybase: 以社交系统为之背书的,开源的 PGP 工具、系统与托管服务器
  • kbpgp: Keybase 用 JS 实现的 PGP 程序

密码管理

编码

知识管理

  • ElasticSearch: 企业级搜索引擎。Java 实现
  • Algolia: 商业搜索引擎
    • docsearch: 基于 algolia 服务的搜索框,搜索时需要请求 algolia api。
  • typesense: 类似 algolia。C++ 实现的。索引全存内存。
    • 可自己托管,也可以选择 typesense cloud 服务,但它没有靠近中国的数据中心。
  • MeiliSearch: Rust 实现
  • sonic: Rust 实现。
  • lunr.js: 轻量级的搜索方案。无须部署服务。支持多语言。现已无人维护。
    • lunr-languages: 语言包。中文包的依赖加载有问题。
    • 全文索引存储在本地的一个 JSON 文件里,每次加载页面都会加载全文索引。如果网站内容很多,索引文件会很大。
  • flexsearch: 类似 lunr.js。虽然支持中文,但分词功能可能需要自己开发。
  • solr: 基于 Lucene 的开源企业级搜索平台

停止词 Stop Words

停用词是指在信息检索中,为节省存储空间和提高搜索效率,在处理自然语言数据(或文本)之前或之后会自动过滤掉某些字或词,这些字或词即被称为 Stop Words(停用词)。 这些停用词都是人工输入、非自动化生成的,生成后的停用词会形成一个停用词表。但是,并没有一个明确的停用词表能够适用于所有的工具。

邮件

翻译

  • 沉浸式翻译: 浏览器插件,开源免费,体验很好。
  • translate-shell: Command-line translator using Google Translate, Bing Translator, Yandex.Translate, etc.
  • Poedit: .po 翻译软件 。价格太贵,大版本升级坑。暂无替代方案
  • OpenCC: 中文简体与繁体转换
  • https://www.deepl.com/ : 基于 AI 的翻译器
  • Grammarly: 提供英文语法纠错的 Web 服务。有 Chrome 插件,体验不错。

Windows App

Mac App

字体

Design

Emoji

Unicode

命名

团队协作

  • airtable: 商业方案,小团队免费
    • nocodb: 备选方案。开源的

即时通讯

  • mattermost: slack 的开源替代品。即时聊天。

ChatOps

  • wechaty: 聊天机器人开发框架

电子书

交流学习使用,请勿用于非法用途。

电子书阅读器

  • calibre: 开源电子书管理器,支持格式转换。
  • koodo-reader: 跨平台的电子书阅读器。不支持移动端
  • legado: 安卓平台的电子书阅读器
  • koreader: 转为水墨屏设计的电子书阅读器

服务 (Service)

在线工具箱 (Online Toolbox)

  • CyberChef: 开源的,在线提供编码/解码,压缩,数据分析,时间戳,代码格式化等功能。
  • https://it-tools.tech/ : 开源的,可以用 Docker 自部署。
  • https://extendsclass.com/ : 有语法校验器,加/解密,格式转换,Diff 工具,各种生成器,前端压缩等工具。

自部署的服务 (Self-Host Service)

  • Dub: 开源的短链接服务,自带访问统计
  • shlink: 短链服务。功能挺全。
  • rustdesk: 开源的远程控制软件 (VNC)。支持手机控制电脑,电脑控制手机。支持全平台、多语言。国产软件。

评论系统

  • remark42: 评论系统
  • cusdis: Disqus 替代品
  • Disqus: 国外的免费商业评论系统,用户体验好。但国内被墙
    • DisqusJS: 让 Disqus 可以在国内访问,但是只读,不能发表评论

图床

网盘

临时共享

爬虫/Archive

  • ArchiveBox: 自己搭建 Archive 网站。
  • httrack: 命令行或者图形化的爬虫工具,参数很丰富
  • wget -r: 简易版,有诸多限制
  • colly: Go 语言编写的爬虫框架
  • katana: 「待评价」

爬虫代理池

HTTP 静态文件服务

静态文件托管

CMS

  • headless cms
  • strapi
  • Ghost
  • netlify-cms: 基于 Git 服务(比如 github、gitlab)的 Open API 的 CMS。开源项目挺有用。商业项目不适合用。
  • ROAPI: 把数据源直接以 GraphQL、SQL、RESTful API 暴露。
  • keystone: Headless CMS. Built with GraphQL and React

PaaS

PAAS comparison - Dokku vs Flynn vs Deis vs Kubernetes vs Docker Swarm (2017)

Serverless

microVM

  • firecracker: Secure and fast microVMs for serverless computing。AWS 出品
  • weaveworks/ignite: a declarative Firecracker microVM administration tool
  • kubevirt: 「待评价」KubeVirt is a virtual machine management add-on for Kubernetes. The aim is to provide a common ground for virtualization solutions on top of Kubernetes.

跳板机/堡垒机

REPL

正则表达式 (Regex)

数据可视化

地图

日志

  • goaccess: GoAccess is a real-time web log analyzer and interactive viewer that runs in a terminal in *nix systems or through your browser.

交互式 Notebook

  • Jupyter: 交互式可编程的 notebook,主要支持 python。也可扩展支持其他语言
  • JupyterLab: Jupyter 新的 Web 界面。
  • nteract: 基于 Jupyter 的前端跨平台项目
  • 吃灰但值得一看的项目
    • EVE: 「团队解散」非常酷的概念,Literate Programming 的一种实现,Medium 式编程。
    • kajero: 「无人维护」Interactive JavaScript notebooks with clever graphing
  • https://mybinder.org/
  • Quarto: an open-source scientific and technical publishing system built on Pandoc

简历

Zig

Lua

Python

Java

Golang

NodeJS

TypeScript

WebAssembly

Nix

前端开发

Docker

K8S/Kubernetes

硬件

HASS (Home Assistant)

虚拟化

libvirt/KVM

  • KVM: 开源免费,最强大的虚拟化工具
  • kimchi: Kimchi manages KVM guests through libvirt. The management interface is accessed over the web using a browser that supports HTML5.
  • WebVirtCloud: virtualization web interface for admins and users
  • barrier: KVM switch over http

模板引擎

TeX/LaTeX

Slide/Presentation

SSG: Static Site Generator

  • Jekyll: Ruby 生态。Github Page 默认 SSG。markdown 文本编译成网页。主题和插件生态非常丰富。
  • just-the-docs: 基于 Jekyll,适用于生成项目文档。搜索功能强大。
    • 缺点
      • 导航栏的编排很冗余。必须要给 markdown 文档加内容。
      • {:toc} 这类语法依赖 kramdown,如果 _config.yml 修改了 markdown 解析器,这类语法将会失效
      • 搜索栏默认不支持中文,它使用 lunr.js,需要自己添加语言包,得改很多东西。
  • jekyll-theme-chirpy: 支持中文,TOC,搜索。
  • Hugo: Go 生态。
  • gatsby: JS + React 生态。适合与 CMS、API、数据库搭配使用。
  • Hexo: 适用于搭建个人博客。JS 生态。
  • Zola: Rust 生态。自带搜索栏。
  • Gastby: 基于 React 和 GraphQL 的现代化静态网站生成器。可扩展性好。
    • docz: 基于 MDX 和 Gastby 的,零配置的,文档生成器
  • docsify: 基于 Markdown 的文档生成器。在浏览器直接加载 Markdown 文档实时渲染。细节功能做得不是很理想。routerMode: 'history' 针对静态页面托管方案(比如 Github Pages)无效。
    • docute: 类似技术的备选方案
  • docusaurus: JS + React + MDX
  • next.js: 「待评价」
  • astro: 「待评价」
  • eleventy: 「待评价」
  • bisheng: 「待评价」
  • staticrypt: 加密静态网页,解密无需后端服务

JAMstack

文档

文档系统

文档处理

文档检查

  • lychee: 命令行工具,检查文档中的链接和邮件地址是否有效

文档排版

Markdown

  • grip: Markdown 即时渲染服务器
    • vmd: Markdown 即时渲染应用。备选方案
  • json2md: 非常灵活的 Markdown 生成工具,容易自己定制功能
  • markdown-toc: 根据 markdown heading 文本输出 TOC
  • unified
  • remark: markdown processor
  • mdx: Markdown + JSX = MDX。支持模块导入和导出,支持 React 组件。写 Web 文档利器。
    • Code Hike: MDX 的 remark 插件。使用场景:code walkthrough。

Markdown 编辑器

  • marktext: 跨平台的 Markdown 编辑器,GUI 应用
  • stackedit: 运行在浏览器中的 Markdown 编辑器。文件存储在浏览器的 localstorage 中,也可以导出到文本到本地磁盘、Google Drive、Dropbox,或你的 GitHub 账户下。详见链接

Changelog

Hash

图像处理

视频处理

压缩/解压

  • zstd: 压缩比率、速度都很高。
  • snappy: 速度非常快,但压缩比低。
  • mozjpeg: mozilla 出品的 JPEG 图像压缩算法,压缩率很高

OCR

Android

截图/录屏

  • CleanShot X: 用户体验很优秀。价格略贵。支持截图/窗口截图/截屏/滚动截屏/录屏/录音/OCR 识别/标注
  • Monosnap: 免费又强大的截图/截屏/录屏(支持 GIF 和 MP4)。不支持滚动截屏。
  • iShot: 支持截图/截屏/滚动截屏/录屏/录音/OCR 识别/标注。过了试用期后能用,但是图片会带水印。
  • Mac 系统自带截图工具。不支持滚动截屏,其他功能都有。Safari 支持滚动截屏。
  • screencapture: Mac 自带命令,截图/截屏工具。
  • Snipaste: windows 截图/截屏工具
  • kap: 用户体验很好的,开源的录屏工具,支持 GIF, MP4, WebM, APNG

漫画

  • Kavita: 支持 docker 部署。

视频/音频

  • OBS: 非常好用的推流和录制工具。免费。
  • obs-ndi: 采集窗口的视频和音频
  • Sound Siphon: Mac 下最好用的音频录制工具。能创建虚拟输入设备。能把任何应用的音频输出转发到另一个应用上。价格有点贵。
    • BlackHole: 免费的开源方案
    • loopback: 类似的备选方案,价格更贵
    • Audio Hijack: 专业录音工具。不能创建虚拟设备。
  • forecast: MP3 metadata 编辑器。做播客会用到。
  • mpv: 跨平台的媒体播放器,支持命令行
    • vlc: 备选方案
  • iina: 视频播放器。基于 mpv 开发
  • HandBrake: 视频转码器
  • ffmpeg: 非常强大的视音频处理软件。命令行或者 API 编程用。
  • µStreamer: 轻量级的 MJPEG 转 HTTP 推流服务。支持 VGA 和 HDMI 采集卡。
  • jellyfin: 多媒体系统。可以看电源和图片。支持 docker 自部署、IPTV、硬解、外挂字幕。UI 颜值不错。

音乐

知识图谱

互联网关键词趋势

机器学习

运营

  • https://lab.lyric.im/wxformat/ : Markdown 转微信公众号排版的工具
  • Wechatsync: 一键多平台同步发布文章。支持微信公众号、知乎、微博、今日头条、BiliBili、WordPress、简书、掘金、typecho 等平台

中国特色

人文

Funny

游戏开发

二维码

FTP

  • vsftpd: Very Secure FTP Daemon
  • uftp: 基于 UDP 的 FTP 服务器和客户端
  • ncftp: ftp 命令行客户端,macos、linux 平台通用。缺点是不支持 ftp over ssl。
    • lftp: macos、linux 平台通用。支持 ftp over TLS or OpenSSL。缺点是没有 lls 这样的指令。只能用 !
  • Transmit: FTP/SFTP/WebDAV/S3/Backblaze B2/Box/Google Drive/DreamObjects/Dropbox/Microsoft Azure/Rackspace Cloud Files 客户端 APP。
  • Transfer: 简单好用的 TFTP/HTTP/FTP/SFTP 服务器
  • WinSCP: 免费开源的 FTP GUI 客户端。也支持 SCP、WebDAV、S3。支持中文文件名。
  • muCommander: 开源、跨平台的 FTP GUI 客户端。支持 FTP, SFTP, SMB, NFS, HTTP, Amazon S3, Hadoop HDFS, Bonjour。缺点:中文文件名会显示乱码。

别人的工具列表