Python 和 JavaScript 开发人员必试的 7 个开源工具

几乎每个开发人员都会使用开源工具,无论是学习编码还是构建真实应用程序。

**Python 最近超越 JavaScript 成为 GitHub 上最受欢迎的语言**。现在两者都是开源领域排名前两位的编程语言。

在本文中,我将分享 7 个面向 Python 和 JavaScript 开发人员的开源工具,它们可以帮助您构建更好的项目。

**让我们开始吧!**🚀

GIF

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

Crawlee - 构建可靠的爬虫

Crawlee

Crawlee 是一个用于网页抓取和浏览器自动化的开源库。它支持 HTTP 请求和使用 Puppeteer 和 Playwright 等工具的无头浏览器抓取。

其防阻塞功能(例如代理轮换和浏览器指纹识别)使其更容易避免检测。Crawlee 还可以自动扩展并支持 TypeScript,使其能够可靠高效地处理任何规模的任务。

Crawlee

**最好的部分?** 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 Giveaway

Crawlee 将向社区赠送 3 件独家连帽衫。

  • 单击下面的按钮即可在 GitHub 上关注 Star Crawlee。
  • 在本文的评论部分中输入您的 GitHub 用户名。
  • 就是这样!

    Crawlee 将于 **2024 年 12 月 31 日** 选出幸运获奖者。

    参与抽奖活动

    Marimo - Python 的反应式笔记本

    Marimo

    Marimo 是一个基于 Python 的开源笔记本环境,可让数据处理更具交互性和直观性。它支持 Python 脚本和笔记本,允许通过 Git 进行无缝版本控制。

    Marimo 的突出特点是其响应式 UI,笔记本某一部分的变化会自动更新其他相关部分,使其成为实时数据探索的理想选择。

    它易于使用,为高级用户提供大量功能。例如,它可用于创建嵌入可视化工具等交互式工具。

    Marimo

    您可以通过在终端运行此安装命令来**快速启动 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 的文档了解有关 Marimo 的更多信息,并找到在下一个 Python 工作流程中正确使用它的资源。

    他们在 GitHub 上有 8k+ 颗星,而且社区正在快速发展!

    GitHub 上的 Star Marimo ⭐️

    Deno - 现代 Web 的 JavaScript 运行时

    Deno

    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

    Deno 强制执行严格的权限模型,除非明确授予,否则限制对文件、网络和环境的访问。其全面的 API 和最低限度的配置使其成为云和边缘部署的强大选择,为构建和运行应用程序提供了可扩展的环境。

    您可以通过其文档了解有关 Deno 的更多信息,并找到在工作流程中正确使用它的资源。

    他们在 GitHub 上拥有 98k+ 颗星,并且有数千名开发人员正在使用 Deno!

    GitHub 上的 dStar Deno ⭐️

    Wasp - 更快的全栈 Web 应用程序

    Wasp

    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 
    wasp start

    您可以在 http://localhost:3000/ 轻松查看全栈 Web 应用程序

    如果您想了解如何轻松地在下一个全栈项目中使用 Wasp,请在此处查看其教程。

    您可以通过其文档了解有关 Wasp 框架的更多信息,并找到在工作流程中正确使用它的资源。

    他们在 GitHub 上有 13k+ 颗星,并且也拥有良好的社区支持!

    GitHub 上的 Star Wasp ⭐️

    PydanticAI-代理框架

    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 社区的大力支持!

    在 GitHub 上为 PydanticAI 点赞 ⭐️

    PocketBase - 1 个文件中的后端

    PocketBase

    PocketBase 是一个开源自托管后端解决方案,旨在构建全栈应用程序,注重简单性和可移植性。

    它提供身份验证、文件存储和实时 CRUD 操作等基本功能,全部在单个服务器实例中实现。非常适合中小型应用程序,例如移动应用后端和 SaaS 平台。

    **一些很棒的功能包括:**

  • 支持多种前端堆栈,如 Svelte、Angular、react 等
  • Javascript 和 Dart SDK
  • 自托管
  • PocketBase 的创建是为了帮助构建自包含应用程序。对于需要轻量级后端而又无需管理多个服务的复杂性的项目来说,它是一个很好的选择。

    该项目完全开源,由志愿者维护,无需任何资金支持。您可以参与其中,也可以从文档中探索其功能和实现细节。

    他们在 GitHub 上有 41k+ 颗星,并由兼职贡献者维护。

    在 GitHub 上为 PocketBase 点赞 ⭐️

    KitOps - 机器学习协作变得简单

    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 内容解压到当前目录,您可以使用它来了解更多信息。

    ModelKit

    **主要特点**

  • OCI 兼容打包:将模型、数据集、配置和代码打包到 ModelKit 中,以实现简化的版本控制。
  • 注册灵活性:与任何符合 OCI 的注册表兼容,确保与现有 AI/ML 工作流程无缝集成。
  • 基于 YAML 的定制:使用直观的 YAML 文件配置管道、微调 LLM 并构建 RAG 管道。
  • 最好的部分?

    如果您是一名数据科学家,正在与一支使用 LLM 模型构建的 AI 工程师团队合作在 Jupyter Notebooks 中处理 Python 脚本,那么 KitOps 可以弥补这一差距。

    它支持跨团队的无缝协作,将不同的工作流程组合到统一的流程中,以实现最高效率。

    您可以通过其文档了解有关 KitOps 的更多信息,并找到在工作流程中正确使用它的资源。

    他们在 GitHub 上有 500+ 颗星,而且社区正在不断壮大!

    在 GitHub 上为 KitOps 点赞 ⭐️

    就是这样!我尝试介绍一些主要针对 Python 和 JavaScript 开发人员的有用工具。如果您知道其他很棒的工具,请在评论中写下来!

    希望您觉得本文有用。如果是这样,请随时与您的开发人员朋友分享!

    另外,关注我获取更多类似内容:

    阿林达姆·马宗德

    开发倡导者 | 技术作家 | 40 万+ 阅读量 | 合作邮件

    如需付费合作,请发送电子邮件至:arindammajumder2020@gmail.com。

    感谢您的阅读!

    GIF