Python 和 JavaScript 开发人员必试的 7 个开源工具
几乎每个开发人员都会使用开源工具,无论是学习编码还是构建真实应用程序。
**Python 最近超越 JavaScript 成为 GitHub 上最受欢迎的语言**。现在两者都是开源领域排名前两位的编程语言。
在本文中,我将分享 7 个面向 Python 和 JavaScript 开发人员的开源工具,它们可以帮助您构建更好的项目。
**让我们开始吧!**🚀

您可以在您的项目中使用这些工具,甚至可以为它们做出贡献以使其变得更好。
Crawlee - 构建可靠的爬虫

Crawlee 是一个用于网页抓取和浏览器自动化的开源库。它支持 HTTP 请求和使用 Puppeteer 和 Playwright 等工具的无头浏览器抓取。
其防阻塞功能(例如代理轮换和浏览器指纹识别)使其更容易避免检测。Crawlee 还可以自动扩展并支持 TypeScript,使其能够可靠高效地处理任何规模的任务。

**最好的部分?** Crawlee 可以无缝地与 **Node.js** 和 配合使用。如果网站需要 JavaScript 渲染,您可以轻松切换到基于浏览器的爬虫。之后,如果您发现了更快速的 API 来满足您的需求,只需切换回 HTTP 爬虫,而无需重写您的项目
要运行 Crawlee 快速启动,请安装 Crawlee CLI 及其必要的依赖项和样板代码:
npx crawlee create my-crawler
Crawlee 有三个主要的爬虫类:`CheerioCrawler`,`PuppeteerCrawler` 和 `PlaywrightCrawler`,具有相同的接口。
你可以使用以下命令在项目中运行 Crawlee:
npm install crawlee
让我们看一下使用 Crawlee **“爬取网站上的所有链接”**的示例:
import { PlaywrightCrawler } from 'crawlee'; const crawler = new PlaywrightCrawler({ async requestHandler({ request, enqueueLinks, log }) { log.info(request.url); // Add all links from page to RequestQueue await enqueueLinks(); }, maxRequestsPerCrawl: 10, // Limitation for only 10 requests (do not use if you want to crawl all links) }); // Run the crawler with initial request await crawler.run(['https://crawlee.dev']);
此示例使用 `enqueueLinks()` 方法在爬虫程序浏览页面时向 `RequestQueue` 添加新链接。通过删除 `maxRequestsPerCrawl` 选项,您可以使用它来查找域上的所有 URL。
您可以从其文档中找到更多示例和资源,以便在您的项目内正确使用 Crawlee。
他们在 GitHub 上有 15k+ 颗星,项目正在不断发展和完善。
GitHub 上的 Star Crawlee ⭐️
🚨 赠品提醒!🚨

Crawlee 将向社区赠送 3 件独家连帽衫。
就是这样!
Crawlee 将于 **2024 年 12 月 31 日** 选出幸运获奖者。
参与抽奖活动
Marimo - Python 的反应式笔记本

Marimo 是一个基于 Python 的开源笔记本环境,可让数据处理更具交互性和直观性。它支持 Python 脚本和笔记本,允许通过 Git 进行无缝版本控制。
Marimo 的突出特点是其响应式 UI,笔记本某一部分的变化会自动更新其他相关部分,使其成为实时数据探索的理想选择。
它易于使用,为高级用户提供大量功能。例如,它可用于创建嵌入可视化工具等交互式工具。

您可以通过在终端运行此安装命令来**快速启动 Marimo**:
pip install marimo # or conda install -c conda-forge marimo marimo tutorial intro
使用以下工具创建或编辑笔记本:
marimo edit
运行应用程序:
marimo run your_notebook.py
**最精彩的部分,与 Marimo 一起:**
您可以通过 Marimo 的文档了解有关 Marimo 的更多信息,并找到在下一个 Python 工作流程中正确使用它的资源。
他们在 GitHub 上有 8k+ 颗星,而且社区正在快速发展!
GitHub 上的 Star Marimo ⭐️
Deno - 现代 Web 的 JavaScript 运行时

Deno 是一个开源 JavaScript 运行时,旨在提供现代且安全的开发者体验。Deno 基于 V8 和 Rust 构建,默认针对简单性和安全性进行了优化。
通过运行单个命令在 Mac 或 Linux 上安装 Deno:
curl -fsSL https://deno.land/install.sh | sh
对于 Windows,运行以下命令:
irm https://deno.land/install.ps1 | iex
它还原生支持 TypeScript,并包含用于执行代码检查、格式化、测试和编译为独立可执行文件等任务的内置工具。
尽管 Deno 与 Node.js 有很大不同,但它提供了一个 Node.js 兼容层,允许您以最少的更改运行现代 Node.js 项目。您还可以从 Node.js 迁移到 Deno,从而使您的代码更简单、更高效。

Deno 强制执行严格的权限模型,除非明确授予,否则限制对文件、网络和环境的访问。其全面的 API 和最低限度的配置使其成为云和边缘部署的强大选择,为构建和运行应用程序提供了可扩展的环境。
您可以通过其文档了解有关 Deno 的更多信息,并找到在工作流程中正确使用它的资源。
他们在 GitHub 上拥有 98k+ 颗星,并且有数千名开发人员正在使用 Deno!
GitHub 上的 dStar Deno ⭐️
Wasp - 更快的全栈 Web 应用程序

Wasp 是一个开源框架,旨在简化全栈 Web 开发。您可以通过 Wasp 轻松地在 React、Node.js 和 Prisma 之上进行构建。
它通过为您处理样板代码和配置来简化现代 Web 应用程序的设置和编排。Wasp 的配置语言简单易用,可让开发人员专注于应用程序的核心逻辑,同时自动执行重复任务,从而加快开发速度并提高效率。
要快速启动 Wasp,请在 **Linux / OSX / WSL (Windows) 上运行此安装命令:**
curl -sSL https://get.wasp-lang.dev/installer.sh | sh
创建新的应用程序:
wasp new
现在,运行 Wasp 应用程序:
cdwasp start
您可以在 http://localhost:3000/ 轻松查看全栈 Web 应用程序
如果您想了解如何轻松地在下一个全栈项目中使用 Wasp,请在此处查看其教程。
您可以通过其文档了解有关 Wasp 框架的更多信息,并找到在工作流程中正确使用它的资源。
他们在 GitHub 上有 13k+ 颗星,并且也拥有良好的社区支持!
GitHub 上的 Star Wasp ⭐️
PydanticAI-代理框架

PydanticAI 是一个新的代理框架,旨在简化生成式 AI 与生产级 Python 应用程序的集成。
**一些突出的特点:**
基于 Pydantic 的优势和 OpenAI SDK、Anthropic SDK、LangChain、LlamaIndex、AutoGPT、Transformers、CrewAI、Instructor 等的验证层。
PydanticAI 可在 PyPI 上使用,因此你可以通过运行以下命令进行安装:
pip install pydantic-ai
您可以将它与可选的 Logfire 集成一起使用,或者仅安装示例:
pip install 'pydantic-ai[examples]'
这些示例要求您使用 LLM 设置身份验证并遵循其他步骤,请在本文档中找到所有内容。
PydanticAI 是一个新的代理框架,部分功能仍处于测试阶段。如果您打算尝试,可以尽早参与。
您可以通过其文档了解有关 PydanticAI 代理框架的更多信息,并找到在工作流程中正确使用它的资源。
他们在 GitHub 上拥有 1.3k+ 颗星,并得到强大的 Pydantic 社区的大力支持!
在 GitHub 上为 PydanticAI 点赞 ⭐️
PocketBase - 1 个文件中的后端

PocketBase 是一个开源自托管后端解决方案,旨在构建全栈应用程序,注重简单性和可移植性。
它提供身份验证、文件存储和实时 CRUD 操作等基本功能,全部在单个服务器实例中实现。非常适合中小型应用程序,例如移动应用后端和 SaaS 平台。
**一些很棒的功能包括:**
PocketBase 的创建是为了帮助构建自包含应用程序。对于需要轻量级后端而又无需管理多个服务的复杂性的项目来说,它是一个很好的选择。
该项目完全开源,由志愿者维护,无需任何资金支持。您可以参与其中,也可以从文档中探索其功能和实现细节。
他们在 GitHub 上有 41k+ 颗星,并由兼职贡献者维护。
在 GitHub 上为 PocketBase 点赞 ⭐️
KitOps - 机器学习协作变得简单

KitOps 是一个开源工具,它重新定义了数据科学家、开发人员和 SRE 如何在 AI/ML 模型、数据集和源代码上进行协作。
通过利用 Modelkit(一种 OCI(开放容器计划)标准包装格式),KitOps 提供了一种在不同环境中打包、版本控制和部署资源的统一方法。
要使用 KitOps,您需要安装 Kit CLI 并通过运行检查版本:
kit version
登录符合 OCI 标准的注册表。Jozu Hub 是 KitOps 的首选,运行以下命令:
kit login jozu.ml
登录后,从 Jozu Hub 中提取示例 Modelkit,并通过运行以下命令在您的工作流中尝试它:
kit unpack jozu.ml/jozu-quickstarts/fine-tuning:latest
unpack 命令将默认将 ModelKit 内容解压到当前目录,您可以使用它来了解更多信息。
**主要特点**
最好的部分?
如果您是一名数据科学家,正在与一支使用 LLM 模型构建的 AI 工程师团队合作在 Jupyter Notebooks 中处理 Python 脚本,那么 KitOps 可以弥补这一差距。
它支持跨团队的无缝协作,将不同的工作流程组合到统一的流程中,以实现最高效率。
您可以通过其文档了解有关 KitOps 的更多信息,并找到在工作流程中正确使用它的资源。
他们在 GitHub 上有 500+ 颗星,而且社区正在不断壮大!
在 GitHub 上为 KitOps 点赞 ⭐️
就是这样!我尝试介绍一些主要针对 Python 和 JavaScript 开发人员的有用工具。如果您知道其他很棒的工具,请在评论中写下来!
希望您觉得本文有用。如果是这样,请随时与您的开发人员朋友分享!
另外,关注我获取更多类似内容:
阿林达姆·马宗德
开发倡导者 | 技术作家 | 40 万+ 阅读量 | 合作邮件如需付费合作,请发送电子邮件至:arindammajumder2020@gmail.com。
感谢您的阅读!
