Python 和 JavaScript 开发人员必试的 7 个开源工具
几乎每个开发人员都会使用开源工具,无论是学习编码还是构建实际应用程序。
Python 最近超越 JavaScript,成为 GitHub 上最受欢迎的语言。现在,它们都是开源领域排名前两的编程语言。
在本文中,我将分享 7 个面向 Python 和 JavaScript 开发人员的开源工具,它们可以帮助您构建更好的项目。
让我们开始吧! 🚀
您可以在您的项目中使用这些工具,甚至可以为它们做出贡献以使其变得更好。
Crawlee - 构建可靠的爬虫
Crawlee是一个用于网页抓取和浏览器自动化的开源库。它支持 HTTP 请求和无头浏览器抓取,并支持 Puppeteer 和 Playwright 等工具。
其防阻塞功能(例如代理轮换和浏览器指纹识别)使其更容易规避检测。Crawlee 还能自动扩展并支持 TypeScript,使其能够可靠高效地处理任何规模的任务。
最棒的是? Crawlee 可以无缝兼容Node.js和Python。如果网站需要 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()
向 添加新链接。通过删除该选项,您可以使用它来查找域上的所有 URL。RequestQueue
maxRequestsPerCrawl
您可以从其文档中找到更多示例和资源,以便在您的项目内正确使用 Crawlee 。
他们在GitHub上有 15k+ 颗星,项目在不断发展和改进。
🚨赠品提醒!🚨
Crawlee 将向社区赠送 3 件独家连帽衫。
- 单击下面的按钮即可在 GitHub 上关注 Crawlee。
- 在本文的评论部分输入您的 GitHub 用户名。
就是这样!
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 一起:
-
将您的笔记本作为 Web 应用程序运行:通过隐藏 Python 代码,将您的笔记本转换为交互式 Web 应用程序。
-
作为脚本执行:直接从命令行将笔记本作为脚本运行。
-
自动转换:使用 CLI 自动将 Jupyter 笔记本转换为 marimo 笔记本。
您可以通过其文档了解有关 Marimo 的更多信息,并找到在下一个 Python 工作流程中正确使用它的资源。
他们在GitHub上拥有 8k+ 颗星,并且社区正在快速发展!
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文档了解有关 Deno 的更多信息,并找到在工作流程中正确使用它的资源。
他们在GitHub上拥有 98k+ 颗星,并且有数千名开发人员正在使用 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 应用程序:
cd <my-project-name>
wasp start
您可以在http://localhost:3000/轻松查看全栈 Web 应用程序
如果您想了解如何轻松地将 Wasp 用于您的下一个全栈项目,请在此处查看其教程。
您可以通过 Wasp 框架的文档了解有关 Wasp 框架的更多信息,并找到在工作流程中正确使用它的资源。
他们在GitHub上有 13k+ 颗星,并且也有良好的社区支持!
PydanticAI - 代理框架
PydanticAI是一个新的代理框架,旨在简化生成式 AI 与生产级 Python 应用程序的集成。
一些突出的特点:
-
结构化输出验证:确保 AI 生成的输出与预定义的数据模式相匹配,从而最大限度地减少意外结果。
-
依赖管理:提供工具来轻松管理和使用依赖关系,无论是同步还是异步。
-
与模型无关:支持各种 AI 模型,例如 OpenAI、Groq 和 Gemini,可无缝适应不同的用例
基于 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 社区的大力支持!
PocketBase - 后端包含在 1 个文件中
PocketBase是一个开源的自托管后端解决方案,旨在构建全栈应用程序,注重简单性和可移植性。
它在单个服务器实例中提供身份验证、文件存储和实时 CRUD 操作等基本功能。非常适合移动应用后端和 SaaS 平台等中小型应用程序。
一些出色的功能包括:
-
支持多种前端堆栈,如 Svelte、Angular、React 等
-
Javascript 和 Dart SDK
-
自托管
PocketBase 旨在帮助构建独立的应用程序。对于需要轻量级后端且无需管理多个服务的复杂项目来说,它是一个绝佳的选择。
该项目完全开源,由志愿者维护,无需任何资金支持。您可以参与其中,或通过文档探索其功能和实现细节。
他们在GitHub上有 41k+ 颗星,并由兼职贡献者维护。
KitOps - 机器学习协作变得简单
KitOps 是一个开源工具,它重新定义了数据科学家、开发人员和 SRE 如何在 AI/ML 模型、数据集和源代码上进行协作。
通过利用 OCI(开放容器计划)标准打包格式 Modelkit,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 内容解压到当前目录,您可以使用它来了解更多信息。
主要特点
-
符合 OCI 标准的打包:将模型、数据集、配置和代码打包到 ModelKit 中,以实现简化的版本控制。
-
注册灵活性:与任何符合 OCI 的注册中心兼容,确保与现有的 AI/ML 工作流程无缝集成。
-
基于 YAML 的定制:使用直观的 YAML 文件配置管道、微调 LLM 和构建 RAG 管道。
最好的部分?
如果您是一名数据科学家,正在与一支使用 LLM 模型构建的 AI 工程师团队合作,在 Jupyter Notebook 中处理 Python 脚本,那么 KitOps 可以弥补这一差距。
它支持跨团队的无缝协作,将不同的工作流程组合成统一的流程,以实现最高效率。
您可以通过其文档了解有关 KitOps 的更多信息,并找到在工作流程中正确使用它的资源。
他们在GitHub上有 500 多颗星,而且社区正在不断壮大!
就是这样!我尝试介绍一些主要针对 Python 和 JavaScript 开发人员的实用工具。如果你还知道其他很棒的工具,请在评论区留言!
希望本文对您有所帮助。如果觉得有用,欢迎分享给您的开发者朋友!
另外,关注我以获取更多类似内容:
如需付费合作,请发送电子邮件至:arindammajumder2020@gmail.com。
感谢您的阅读!
文章来源:https://dev.to/arindam_1729/7-must-try-open-source-tools-for-python-and-javascript-developers-4c56