大家好呀,我是yangyang.今天带来一期开源Go语言项目分享.
dagger(star 10k)
介绍
Dagger (https://docs.dagger.io/)是一款工具,可让您用现代 API 和跨语言脚本引擎取代软件项目中的手工脚本。
- 将项目的所有任务和工作流程封装为简单的函数,并用您选择的编程语言编写
- Dagger 将你的函数打包成自定义 GraphQL API
- 通过 CLI、语言解释器或自定义 HTTP 客户端运行函数
- 将函数打包成模块,以便在下一个项目中重复使用或与社区共享
- 在 Daggerverse 中搜索现有模块,并将它们导入到你的模块中。所有 Dagger 模块均可跨语言重复使用彼此的函数。
适合群体?
- 你的团队的“指定开发人员”,希望用更强大的东西取代一堆手工脚本。
- 编写自定义工具的平台工程师,其目标是跨组织孤岛统一应用程序交付。
- 云原生开发者倡导者或解决方案工程师,希望在短时间内演示复杂的集成。
- 对开发
- 降低复杂性:即使是复杂的构建也可以表示为一些简单的函数。
- 不再需要“推动和祈祷”:CI 能做的一切,您本地的开发环境也能做。
- 母语的好处:使用相同的编程语言来开发您的应用程序及其交付工具。
- 新开发人员轻松入职:如果您可以构建、测试和部署,他们也可以。
- 默认缓存:Dagger 缓存所有内容。预计速度可提高 2 倍到 10 倍。
- 跨团队协作:重用另一个团队的工作流程,而无需了解他们的堆栈。
- 对平台
- 减少 CI 锁定:Dagger 功能在所有主要 CI 平台上运行 - 无需专有 DSL。
- 消除瓶颈:让应用程序团队编写自己的函数。通过为他们提供可重用组件库来实现标准化。
- 通过更快的 CI 运行节省时间和金钱:由于缓存和并发性,“Daggerized”CI 管道的运行速度通常快 2 倍到 10 倍。这意味着开发人员在等待 CI 上浪费的时间更少,并且在 CI 计算上花费的钱也更少。
- 从可行的平台策略中受益:开发团队需要灵活性,而您需要控制力。 Dagger 为您提供了一种协调两者的方法,以增量方式利用您已有的堆栈。
架构设计
安装
- mac
- linux
- window
katana(star 8.4k)
介绍
新一代爬虫框架,Katana 是一个专注于自动化执行的快速爬虫 提供无头和非无头爬行的管道。
- 快速且完全可配置的网络抓取
- 标准和无头模式
- 主动和被动模式
- JavaScript 解析/抓取
- 可定制的自动表单填充
- 范围控制--预配置字段/Regex
- 可定制输出--预配置字段
- 输入:STDIN、URL 和 LIST
- 输出:STDOUT、FILE 和 JSON
安装
atana 需要 Go 1.18 才能成功安装。要安装,只需运行以下命令或从发布页面下载预编译的二进制文件(
https://github.com/projectdiscovery/katana/releases)。
go install github.com/projectdiscovery/katana/cmd/katana@latest
Docker
docker pull projectdiscovery/katana:latest
docker run projectdiscovery/katana:latest -u https://tesla.com
docker run projectdiscovery/katana:latest -u https://tesla.com -system-chrome -headless
Ubuntu
sudo apt update
sudo snap refresh
sudo apt install zip curl wget git
sudo snap install golang --classic
wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | sudo apt-key add -
sudo sh -c 'echo "deb http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google.list'
sudo apt update
sudo apt install google-chrome-stable
go install github.com/projectdiscovery/katana/cmd/katana@latest
使用
katana -h查看命令帮助
输入
katana 需要抓取 url 或端点,并接受单个或多个输入。
使用 -u 选项可以提供输入 URL,使用逗号分隔输入可以提供多个值,使用 -list 选项同样支持文件输入,此外还支持管道输入(stdin)。
URL 输入
katana -u https://tesla.com
多个 URL 输入(逗号分隔)
katana -u https://tesla.com,https://google.com
列表输入
$ cat url_list.txt
https://tesla.com
https://google.com
katana -list url_list.txt
STDIN (管道)输入
echo https://tesla.com | katana
cat domains | httpx | katana
运行 katana 的示例
katana -u https://youtube.com
本文暂时没有评论,来添加一个吧(●'◡'●)