9 个开源库助你下一个项目更上一层楼
作为开发人员,我们经常会对使用哪些工具来构建我们的下一个(侧面)项目感到困惑。
即使你足够认真地打造一款产品,问题仍然存在。
因此,我将介绍 9 个开源库,它们将真正为您的未来项目提供强大的动力!
出发啦🚀
1. Crawlee - 网页抓取,简单而强大
Crawlee是一个完整的网页抓取和浏览器自动化库,可以帮助我们快速高效地构建可靠的爬虫。
借助其内置的防阻塞功能,您可以构建类似人类的机器人,从而减少被阻塞的机会。
无论您使用的是Node.js还是Python,Crawlee都为 HTTP 和无头浏览器抓取提供了统一的界面,使其能够适应各种抓取任务。
您可以观看介绍视频来了解更多信息:
开始使用 Crawlee 最简单的方法是使用Crawlee CLI。运行以下命令:
npx crawlee create my-crawler
这将建立一个新项目,其中包含您开始所需的所有依赖项。
如果您想将 Crawlee 添加到您的项目中,请运行以下命令:
npm install crawlee playwright
现在,这里有一个简单的例子:
import { PlaywrightCrawler } from 'crawlee';
// PlaywrightCrawler crawls the web using a headless browser controlled by the Playwright library.
const crawler = new PlaywrightCrawler({
// Use the requestHandler to process each of the crawled pages.
async requestHandler({ request, page, enqueueLinks, pushData, log }) {
const title = await page.title();
log.info(`Title of ${request.loadedUrl} is '${title}'`);
// Save results as JSON to `./storage/datasets/default` directory.
await pushData({ title, url: request.loadedUrl });
// Extract links from the current page and add them to the crawling queue.
await enqueueLinks();
},
// Uncomment this option to see the browser window.
// headless: false,
// Comment this option to scrape the full website.
maxRequestsPerCrawl: 20,
});
// Add first URL to the queue and start the crawl.
await crawler.run(['https://crawlee.dev']);
// Export the whole dataset to a single file in `./result.csv`.
await crawler.exportData('./result.csv');
// Or work with the data directly.
const data = await crawler.getData();
console.table(data.items);
此示例抓取页面、提取数据并入队链接。您可以从文档中了解更多信息。
另外,我还使用 Crawlee for Python 构建了一个 LinkedIn Scrapper,您也可以阅读一下:


如何使用 Crawlee 在 Python 中创建 LinkedIn 职位爬虫
Arindam Majumder for Crawlee ・ 2024 年 10 月 17 日
他们在GitHub上拥有 15k+ 颗星和 110+ 个版本,因此他们在不断发展和改进。
2. Encore - 类型安全应用程序的后端框架
管理可扩展应用程序的云服务并非易事。复杂的基础设施管理、不一致的 API 以及分散的 DevOps 流程常常会造成混乱。
Encore通过提供集成类型安全后端框架、自动基础设施配置和 DevOps 自动化的统一开发平台来简化这种混乱。
它支持 Golang 和 Typescript 两种语言。您可以观看简介视频了解更多信息:
使用Encore,您可以使用微服务、Postgres 和 Pub/Sub 等原语创建可用于生产的后端,而无需通常的复杂性和 DevOps 工作。
通过安装 CLI 开始使用 Encore。
curl -L https://encore.dev/install.sh | bash
然后使用 encore CLI 创建一个应用程序:
encore app create
这将配置您的免费帐户,允许您选择应用程序的名称并选择 Hello World
模板。
然后,这将使用您选择的应用程序名称在新文件夹中创建一个带有简单 REST API 的示例应用程序。
在编辑器中打开文件并转到your-app-name/hello/hello.ts
:
import { api } from "encore.dev/api";
export const world = api(
{ method: "GET", path: "/hello/:name", expose: true },
async ({ name }: { name: string }): Promise<Response> => {
return { message: `Hello ${name}!` };
},
);
interface Response {
message: string;
}
在这里,我们通过在调用中包装常规异步函数来定义 API 端点api
。
Encore 自动处理身份验证、HTTP 路由、请求验证、错误处理、可观察性、API 文档等。
欲了解更多信息,请参阅他们的 文档。此外,还可以加入他们的Discord 社区以获取最新信息。
3. Taipy——用 Python 构建 AI Web 应用程序
您是否曾经想过构建一个简单的 AI 项目,而无需使用前端框架使其复杂化?
如果是这样,这个工具就适合您。
Taipy是一个开源库,用于使用 Python 更快地构建可用于生产的 AI 应用。它可以帮助您快速从简单的试点项目过渡到可用于生产的 Web 应用程序。
它使用 Python 命令构建组件、图形界面和仪表板。它主要用于数据驱动的项目,是处理大型数据集的理想选择。
Taipy非常适合复杂的工作流程,提供节点来有效地处理它们,并且它与 pandas 集成,允许您直接在项目内操作数据。
您可以很快开始使用 Taipy,运行以下命令:
pip install taipy
我们可以使用Taipy通过以下代码创建 GUI :
from taipy.gui import Gui
import taipy.gui.builder as tgb
from math import cos, exp
value = 10
def compute_data(decay:int)->list:
return [cos(i/6) * exp(-i*decay/600) for i in range(100)]
def slider_moved(state):
state.data = compute_data(state.value)
with tgb.Page() as page:
tgb.text(value="# Taipy Getting Started", mode="md")
tgb.text(value="Value: {value}")
tgb.slider(value="{value}", on_change=slider_moved)
tgb.chart(data="{data}")
data = compute_data(value)
if __name__ == "__main__":
Gui(page=page).run(title="Dynamic chart")
欲了解更多详细信息,您可以查看他们的文档。
GitHub上已有超过 16,000+ 颗星,它拥有强大且不断壮大的社区,请为该项目加星标以表示您的支持:
4. KitOps - 灵活管理 AI 模型
KitOps是一个开源工具,旨在统一数据科学家、开发人员和 SRE 管理和协作 AI/ML 模型、源代码、数据集和其他工件的方式。
KitOps为 AI/ML 模型管理带来了全新的灵活性和效率,通过使用 OCI 标准实现了最大程度的兼容性和协作,从而改变了团队打包、版本控制和部署资源的方式。
它具有一系列强大的功能:
✅ 将模型、数据集、配置和代码打包为符合 OCI 的 ModelKit,以便于版本控制。
✅ 与任何符合 OCI 标准的注册表兼容,以实现跨 AI/ML 项目的灵活性。
✅ 基于 YAML 的配置,用于微调 LLM 和创建 RAG 管道。
探索文档以了解为什么 KitOps 成为 AI/ML 工作流程中的必备功能!
KitOps还支持跨任何符合 OCI 的注册表灵活管理模型、数据集和代码,使其成为从事小型项目和大型企业 AI 应用程序的开发人员和 MLOps 团队的理想选择。
✅ 使用 OCI 标准打包和版本化模型、数据集和代码。
✅ 自动化模型部署和测试。
✅ 通过工件签名来追踪来源并保护模型资产。
✅ 与现有的 CI/CD 工作流程无缝集成。
KitOps正在随着社区的不断壮大而积极发展 - 加入他们的Discord或在GitHub上为他们加星标,以保持更新并为这个激动人心的项目做出贡献!
5. CopilotKit——轻松构建应用内AI代理
如果您想在应用程序中添加 AI,CopilotKit可能是最简单且可用于生产的方法。
CopilotKit是领先、最强大且最易于使用的开源框架,用于构建应用内 AI 副驾驶。您可以使用 Copilotkit 提供的简单组件构建应用内 AI 聊天机器人和应用内 AI 代理。
一些突出的特点:
✅应用内 AI 聊天机器人:使用简单的即插即用组件将 AI 聊天机器人添加到您的应用,包括对无头 UI 的支持,使其功能极其多样。
✅副驾驶可读状态:此功能允许副驾驶访问和解释应用程序状态,从而使 AI 助手更加了解上下文并做出响应。
✅副驾驶操作:使您的副驾驶能够根据用户输入和应用程序上下文直接在应用程序内执行任务并采取行动。
他们还提供内置(完全可定制)的 Copilot 原生 UX 组件<CopilotKit />
,如<CopilotPopup />
、、、<CopilotSidebar />
。<CopilotTextarea />
如果您曾经尝试在 React 应用程序中集成代理,您就会知道它有多么棘手且耗时!
CopilotKit最近推出了Co-Agents来解决这一问题。
Co-Agents是一款强大的工具集,用于使用 LangGraph 代理构建 Agent-Native 应用程序。它旨在帮助您将 LangGraph 代理深度集成到 React 应用程序中,突破 AI 原生 UX 的极限。
您可以观看此视频来了解使用合作代理可以做什么:
我还使用 CopilotKit 构建了一个由 AI 驱动的调度应用程序,您可以在这里阅读:


🧑💻 我是如何打造世界上最好的 NextJS AI 调度应用程序的 🤖✨
Arindam Majumder for CopilotKit ・ 2024 年 10 月 24 日
CopilotKit 在GitHub上拥有 12.6k+ 颗星,并且持续更新,获得了更广泛的社区支持和信任。
6. Tolgee——基于网络的本地化平台
国际化和本地化对于吸引全球受众至关重要,但手动管理这两者可能非常耗时。
这正是托尔吉发挥作用的地方。
Tolgee是一个开源本地化平台,它可以让您非常轻松地将应用程序翻译成任何语言,而无需修改代码。
它非常适合网络、移动甚至桌面应用程序,采用开发人员优先的方法设计,从头到尾简化本地化流程。
它具有一系列强大的功能:
✅上下文翻译:查看与应用中显示的完全一样的翻译。
✅管理和跟踪翻译密钥:保持本地化密钥有序,节省时间。
✅设置角色和权限:控制谁有权访问什么,以实现更有效的协作。
✅可通过插件扩展:根据需要轻松将 Tolgee 与其他工具和服务集成。
Tolgee还提供 SDK、REST API 和 CLI,使跨 JavaScript、移动和后端环境的本地化更加容易。
您可以加入他们的Slack 社区或在Github上为他们加星标:
7. OPAL——策略引擎的管理层
OPAL是一个开源管理层,旨在与开放策略代理 (OPA) 和 AWS Cedar 等策略引擎协同工作。
如果您是从事具有复杂访问控制的大型项目的开发人员,OPAL可以简化跨团队或用户组管理权限的过程。
它实时检测策略和策略数据的变化,确保您的应用程序的授权层保持最新。
无论您的数据是通过 API、Git 还是第三方服务进行更改,OPAL 都会自动将必要的策略和授权数据同步到您的服务,并提供适当的访问流程。
现在,让我们来看看OPAL的一些功能和用例:
✅实时权限更新: OPAL 自动实时授予或撤销权限,无需跨应用程序手动更新访问。
✅策略即代码:开发人员可以将策略编写为代码,从而更易于版本控制、审查和管理,以实现一致的策略处理。
✅云原生集成: OPAL 可轻松与 AWS 或 Kubernetes 等基于云的微服务集成,从而简化安全和自动化的策略更新。
✅细粒度授权: OPAL 支持精确的端到端授权,并兼容多种策略语言和分散数据源,使其成为复杂的分布式系统的理想选择。
该工具对于向您的项目添加实时权限更新非常有帮助,同时还允许您轻松地审查和管理大型应用程序中不同级别的用户角色。
它在GitHub上有4.5k 个星标,拥有强大的社区,加入他们的Slack或为该项目加星标以表示您的支持:
8. ChartDB——即时可视化数据库
ChartDB 是一个功能强大的基于 Web 的工具,可帮助开发人员快速直观地可视化和管理他们的数据库模式。
每当我需要了解或设计数据库时,ChartDB 都是我轻松实现模式可视化的首选解决方案。
ChartDB提供了一系列基本功能:
✅即时模式导入:运行单个“智能查询”即可立即将数据库模式检索为 JSON。无论您是记录文档、协作还是深入了解数据结构,此功能都能节省时间。
✅由 AI 驱动的迁移导出: ChartDB 的 AI 驱动导出功能可让您生成针对目标数据库方言定制的 DDL 脚本,从而实现 MySQL、PostgreSQL、SQLite 等数据库之间的无缝迁移。
✅交互式模式编辑:在 ChartDB 的编辑器中轻松微调您的模式布局。调整结构、添加注释,即使是最复杂的数据库结构,也能使其可视化得更清晰、更易于管理。
ChartDB 的仪表板可帮助您在一个地方有效地控制和监控您的模式可视化。
✅ 实时查看和管理多个数据库模式。
✅ 自定义模式布局并以 SQL 或图像格式导出,以便于共享。
✅ 使用 AI 驱动的 DDL 脚本生成顺利执行数据库迁移。
使用 ChartDB,您可以简化数据库设计和迁移任务。
立即查看 ChartDB,看看它如何改变您使用数据库的方式!
9. Stack Auth - 管理用户身份验证
我们列表中的最后一个工具是 Stack Auth,它是 Auth0 和 Clerk 的开源替代品。如果您希望集成一个自托管、可定制的用户身份验证系统,Stack Auth 是一个绝佳的选择,因为它的自托管版本完全免费。
Stack Auth广泛支持单点登录 (SSO)、OAuth 和多因素身份验证 (MFA) 等功能。
它特别适合需要避免供应商锁定或降低与第三方身份验证服务相关的成本的项目。
自托管能力可确保敏感的用户数据保留在您的基础架构内,为具有严格合规性需求的应用程序提供增强的安全性。
值得注意的一点是,Stack Auth提供了一个可定制的自托管身份验证系统,使开发人员可以轻松处理用户访问。
另一方面,OPAL专注于实时策略管理,确保授权规则与不断变化的应用程序要求保持一致。
就是这样!我尽量涵盖了各种各样的工具。如果你还知道其他很棒的工具,请在评论区留言!
希望本文对您有所帮助。如果觉得有用,欢迎分享给您的开发者朋友!
另外,关注我以获取更多类似内容:
如需付费合作,请发送电子邮件至:arindammajumder2020@gmail.com。
感谢您阅读到最后。
文章来源:https://dev.to/arindam_1729/9-open-source-libraries-to-supercharge-your-next-project-c71