2025 年你的下一个大型项目必须使用的 13 个顶级开源工具

2025-05-24

2025 年你的下一个大型项目必须使用的 13 个顶级开源工具

今年将是科技领域激动人心的一年,我们可能会看到人工智能工具、框架、数据库等多个领域取得突破性成就。

因此,我精心挑选了一些您在构建下一个大型项目时必须使用的开源工具。

新年卡通gif


1. Composio:将 AI 与外部 SaaS 集成,实现自动化

2025 年将是 AI 代理的元年。然而,AI 代理的实用性取决于其所配备的工具。Composio 是领先的平台,它为 AI 代理提供工具和集成,使其能够与 GitHub、Gmail 等外部应用进行通信。

Composio 可以作为代理和应用之间的桥接层。例如,使用 Composio,您可以添加 Gmail、日历、Meet、Notion 等,构建一个可以总结会议内容、创建行动要点、更新日历(如果需要)以及向相应与会者发送电子邮件的代理。

开始使用它非常容易。

npm install composio-core openai
Enter fullscreen mode Exit fullscreen mode

连接你的 GitHub 帐户

import { Composio } from "composio-core";

const client = new Composio({ apiKey: "<your-api-key>" });

const entity = await client.getEntity("Jessica");
const connection = await entity.initiateConnection({appName: 'github'});

console.log(`Open this URL to authenticate: ${connection.redirectUrl}`);
Enter fullscreen mode Exit fullscreen mode

初始化 Composio 和 OpenAI

import { OpenAI } from "openai";
import { OpenAIToolSet } from "composio-core";

const openai_client = new OpenAI();
const composio_toolset = new OpenAIToolSet();
Enter fullscreen mode Exit fullscreen mode

获取 GitHub 操作并将其传递给 LLM

const tools = await composio_toolset.getTools({
actions: ["github_star_a_repository_for_the_authenticated_user"]
});

const instruction = "Star the repo composiohq/composio on GitHub";

const response = await openai_client.chat.completions.create({
model: "gpt-4o",
messages: [{ role: "user", content: instruction }],
tools: tools,
tool_choice: "auto",
});
Enter fullscreen mode Exit fullscreen mode

执行工具调用。

const result = await composio_toolset.handleToolCall(response);
console.log(result);
Enter fullscreen mode Exit fullscreen mode

该 文档 提供了有关 Composio、其工作以及制作可用于生产的代理的重要概念的更多信息。

作曲 GIF

为 Composio 代码库加星标 ⭐


2. Encore:开发者优先的自动化基础设施后端框架

Encore 是一款值得考虑使用的后端框架。它消除了云开发以及云基础设施设置和管理的所有麻烦,从 API 文档到数据库配置、服务发现到部署流水线、监控到跟踪,让您专注于编写应用程序代码。

Encore 就像在您的工作流程中内置了一位 DevOps 专家——您只需专注于编写 TypeScript 或 Go 代码。同时,它还能处理所有复杂的后台基础设施,从数据库管理到微服务部署。它将复杂的云开发流程转化为简单易维护的代码。

通过安装 CLI 开始使用 Encore。

curl -L https://encore.dev/install.sh | bash
Enter fullscreen mode Exit fullscreen mode

创建一个应用程序。

encore app create
Enter fullscreen mode Exit fullscreen mode

这将配置您的免费帐户,允许您选择应用程序的名称并选择 Hello World 模板。

这将使用您选择的应用程序名称创建一个包含示例应用程序和简单 REST API 的新文件夹。

在编辑器中打开该文件。

// Service hello implements a simple hello world REST API.
package hello

import (
    "context"
)

// This simple REST API responds with a personalized greeting.
//
//encore:api public path=/hello/:name
func World(ctx context.Context, name string) (*Response, error) {
    msg := "Hello, " + name + "!"
    return &Response{Message: msg}, nil
}

type Response struct {
    Message string
}
Enter fullscreen mode Exit fullscreen mode

有关更多信息,请参阅其 文档

再来一次



3. Val Town运行无服务器 JavaScript 的社交计算平台

把它想象成您在云端的个人 JavaScript 游乐场。Val Town 允许您编写和部署以 API 或自动化方式运行的代码片段,而无需处理服务器或基础设施。它非常适合快速原型设计或自动执行重复性任务。

创建一个新的 Val:

// @username/greet
export function greet(name) {
  return `Hello, ${name}!`
}
Enter fullscreen mode Exit fullscreen mode

导入并使用其他人的 Vals:

import { greet } from "@friend/greet"
export function welcome() {
  return greet("Val Town")
}
Enter fullscreen mode Exit fullscreen mode

每个 Val 都是一个 API 端点,可以像 cron 作业一样进行调度。它非常适合自动化、机器人和快速实验!

瓦尔镇


4. Neon:无服务器 Postgress

如果您曾在无服务器环境中管理 PostgreSQL 数据库时遇到过困难,那么您可能听说过 Neon。它的独特之处在于,它为数据库带来了类似 Git 的分支功能,让您可以创建数据库的即时副本,用于测试或开发。

它非常适合现代开发工作流程,您可以在其中测试更改而不会干扰生产数据。

氖


5. Rustify:用于与 HTTP API 端点交互的 Rust 库

Rustify 是一个用 Rust 编写的小型库,可以减轻搭建 HTTP API 的负担。它提供了一个 endpoint trait 和一个宏助手,允许对各种远程端点进行模板化。它提供异步和同步客户端来执行针对端点的请求,并支持使用 Client trait 实现自定义客户端。

基本示例

use rustify::{Client, Endpoint};
use rustify_derive::Endpoint;

// Defines an API endpoint at /test/path that takes no inputs and returns an
// empty response.
#[derive(Endpoint)]
#[endpoint(path = "test/path")]
struct Test {}

let endpoint = Test {};
let client = Client::default("http://api.com"); // Configures base address of http://api.com
let result = endpoint.exec(&client).await; // Sends GET request to http://api.com/test/path

assert!(result.is_ok());
Enter fullscreen mode Exit fullscreen mode

Rustify


6. Trigger Dev:开源后台作业平台

一个开发者优先的后台作业框架,让处理计划任务和 webhook 变得轻松自然。与传统的作业队列不同,Trigger.dev 内置了版本控制、重试功能以及美观的仪表盘来监控您的作业。

真正的魔力在于它的集成——您可以连接 GitHub、Stripe 或任何 API,而无需编写样板代码。它尤其适用于处理 Webhook 驱动的工作流或运行资源密集型的后台任务,而不会影响您的主应用程序。

# Install
npm install @trigger.dev/sdk
Enter fullscreen mode Exit fullscreen mode
typescript
Copy
import { TriggerClient } from "@trigger.dev/sdk";

const client = new TriggerClient({
  id: "my-app",
  apiKey: process.env.TRIGGER_API_KEY,
});

// Create a scheduled job
client.defineJob({
  id: "daily-cleanup",
  name: "Daily Cleanup",
  version: "1.0.0",
  trigger: "schedule",
  schedule: "0 0 * * *",
  run: async (payload, io) => {
// Built-in integrations
    await io.github.createIssue("org/repo", {
      title: "Daily Cleanup Report",
      body: "Cleanup completed successfully"
    });
  },
});


![Trigger](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/w8spslnv9fiq2669uy81.png)

Enter fullscreen mode Exit fullscreen mode

7. Tolgee:开源本地化工具

Tolgee 是一个创新的开源本地化平台,它正在彻底改变开发者处理应用程序翻译的方式。它支持直接在应用程序中进行上下文翻译,只需按下 ALT 键并点击即可,无需编辑传统的本地化文件。

托尔吉


8. OpenTelemetry:轻松实现有效的可观察性

拼凑各种监控工具的日子已经一去不复返了。OpenTelemetry 是可观察性的“瑞士军刀”,为您提供监控系统所需的一切。

它是一个全面的框架,可以收集整个基础架构的跟踪信息、指标和日志,让您更轻松地了解复杂分布式应用程序中的运行情况。无论是在 Kubernetes 中运行微服务还是传统应用程序,OpenTelemetry 都提供了一种统一的方法来收集和分析性能数据,而无需依赖任何供应商。

# Install for Node.js
npm install @opentelemetry/api @opentelemetry/sdk-node
Enter fullscreen mode Exit fullscreen mode
import { NodeSDK } from '@opentelemetry/sdk-node'
import { trace } from '@opentelemetry/api'

const sdk = new NodeSDK()
sdk.start()

// Create a span
const tracer = trace.getTracer('my-app')
const span = tracer.startSpan('my-operation')
span.end()
Enter fullscreen mode Exit fullscreen mode

开放遥测


9. ChromaDB:高性能矢量数据库

构建需要理解和搜索内容的 AI 应用程序?ChromaDB 可以帮您实现。它是一个开源的嵌入式数据库,让向量搜索变得轻而易举。

开始使用它很容易。

pip install chromadb
Enter fullscreen mode Exit fullscreen mode
import chromadb

client = chromadb.Client()
collection = client.create_collection("docs")

# Add documents
collection.add(
    documents=["ChromaDB is awesome", "Vector databases are the future"],
    ids=["1", "2"]
)

# Search
results = collection.query(
    query_texts=["What's awesome?"],
    n_results=1
)
Enter fullscreen mode Exit fullscreen mode

ChromaDB


10. Hono:适用于边缘设备的超轻量级 Web 框架

专为边缘计算构建的超轻量级 Web 框架。虽然其他框架最初都是以服务器为目标,但 Hono 专为 Cloudflare Workers 和 Deno Deploy 等边缘计算平台而设计。它运行速度快,占用空间小,并提供类似 Express 的 API。

开始使用它非常容易。

npm create hono@latest
Enter fullscreen mode Exit fullscreen mode

一个简单的例子

import { Hono } from 'hono'
const app = new Hono()

app.get('/', (c) => c.text('Hono!'))

export default app
Enter fullscreen mode Exit fullscreen mode

霍诺

11. Astro:内容驱动网站的 Web 框架

一个正在改变我们 JavaScript 传输方式的 Web 框架:Astro 默认提供闪电般快速的网站,除非您明确需要,否则不会向客户端发送任何 JavaScript。它的独特之处在于其“孤岛架构”——您可以在同一个项目中混合搭配使用 React、Vue 或 Svelte 组件,Astro 只会加载必要的组件。

这意味着您可以同时获得两种体验:在需要的地方使用动态组件,在其他地方使用静态、极速的 HTML。非常适合内容丰富且需要选择性交互的网站。

#create new project
npm create astro@latest
Enter fullscreen mode Exit fullscreen mode
---
// pages/index.astro
const data = await fetch('api/posts').then(r => r.json())
---
<html>
  <body>
    {data.map(post => (
      <article>
        <h2>{post.title}</h2>
        <p>{post.excerpt}</p>
      </article>
    ))}
  </body>
</html>

Enter fullscreen mode Exit fullscreen mode

Astro


12. Grafbase:GraphQL 联合平台

Grafbase 允许您使用 TypeScript 定义 API 模式,并处理所有后端复杂性。它最棒之处在于它能够与您现有的工具连接——从用于身份验证的 Auth0 到用于文件存储的 S3。

此外,它还能自动将您的 API 部署到边缘,无论用户身在何处,都能实现极速运行。对于那些希望拥有现代 GraphQL 后端,又不想面对运维难题的团队来说,它堪称理想之选。

# Install Grafbase CLI
npm install -g grafbase

# Initialize a new project
grafbase init my-api
Enter fullscreen mode Exit fullscreen mode
// schema.ts
type Post @model {
  id: ID!
  title: String!
  content: String
  author: User!
}

type User @model {
  id: ID!
  name: String!
  posts: [Post]
}
Enter fullscreen mode Exit fullscreen mode

Grafbase


13. Letta:构建具有记忆功能的 LLM

Letta 是一个创新的 AI 平台,为基于 LLM 的代理带来先进的记忆功能。该平台创立于加州大学伯克利分校的 Sky Computing Lab,旨在帮助 AI 代理在交互过程中保持持久记忆和状态。

创建代理

from letta import EmbeddingConfig, LLMConfig, create_client

client = create_client()

# set automatic defaults for LLM/embedding config
client.set_default_llm_config(LLMConfig.default_config(model_name="gpt-4"))
client.set_default_embedding_config(EmbeddingConfig.default_config(model_name="text-embedding-ada-002"))

# create a new agent
agent_state = client.create_agent()
print(f"Created agent with name {agent_state.name} and unique ID {agent_state.id}")

Enter fullscreen mode Exit fullscreen mode

创建代理后,您可以向其发送消息:

# Message an agent

response = client.send_message(
agent_id=agent_state.id,
role="user",
message="hello"
)
print("Usage", response.usage)
print("Agent messages", response.messages)
Enter fullscreen mode Exit fullscreen mode

欲了解更多信息,请查看文档。

莱塔


感谢您的阅读,再次祝您新年快乐。

如果您想成为充满活力的 AI 开发者社区的一员,请加入我们的Discord 频道

文章来源:https://dev.to/composiodev/13-top-open-source-tools-you-must-use-for-your-next-big-project-in-2025-5gld
PREV
2025 年不容错过的 25 款顶级 Web 应用构建开源工具🎉 🚀
NEXT
构建生产级 AI 应用的 13 个必知开源软件🧙‍♂️🪄✨