阿川私房教材:
學 JavaScript 前端,帶作品集去面試!

63 個專案實戰,寫出作品集,讓面試官眼前一亮!

立即開始免費試讀!

對於科技來說,這將是激動人心的一年,我們可能會看到跨多個領域、人工智慧工具、框架、資料庫等的突破性成就,

因此,我策劃了一些您必須用來建立下一個大型專案的開源工具。

新年卡通gif


  1. Composio :將AI與外部SaaS整合以實現自動化

2025 年將是人工智慧代理年。然而,AI 代理與它們擁有的工具一樣有用,Composio 是領先的平台,為您的 AI 代理提供工具和集成,以便與 GitHub、Gmail 等外部應用程式進行通訊。

將 Composio 視為代理和應用程式之間的橋接層。例如,使用Composio,您可以加入Gmail、日曆、Meet、Notion 等來建立一個代理,該代理可以總結您的會議、建立操作點、更新您的日曆(如果需要)以及向適當的與會者發送電子郵件。

開始使用它非常簡單。

npm install composio-core openai

連結您的 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}`);

初始化 Composition 和 OpenAI

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

const openai_client = new OpenAI();
const composio_toolset = new OpenAIToolSet();

取得 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",
});

執行工具呼叫。

const result = await composio_toolset.handleToolCall(response);
console.log(result);

文件提供了有關 Composio、其工作以及製作可用於生產的代理的重要概念的更多資訊。

合成 GIF

https://dub.composio.dev/77b7JH5 為 Composio 儲存庫加註星標 ⭐


  1. Encore :具有自動化基礎架構的開發者優先後端框架

Encore 是您應該考慮使用的後端框架。它消除了雲端開發以及雲端基礎設施設定和管理的所有麻煩,從 API 文件到資料庫配置、服務發現到部署管道、監控到跟踪,讓您專注於編寫應用程式程式碼。

Encore 就像在您的工作流程中內建了一位 DevOps 專家 - 您專注於編寫 TypeScript 或 Go 程式碼。同時,它處理幕後的所有複雜基礎設施,從資料庫管理到微服務部署。它將複雜的雲端開發轉變為簡單、可維護的程式碼。

透過安裝 CLI 開始使用 Encore。

curl -L https://encore.dev/install.sh | bash

建立一個應用程式。

encore app create

這將配置您的免費帳戶,允許您選擇應用程式的名稱,並選擇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
}

有關更多訊息,請參閱他們的文件

安可



  1. Val Town執行無伺服器 JavaScript 的社交運算平台

將其視為您在雲端的個人 JavaScript 遊樂場。 Val Town 允許您編寫和部署作為 API 或自動化執行的程式碼片段,而無需處理伺服器或基礎架構。它非常適合快速原型或自動化重複任務。

建立一個新的值:

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

導入並使用別人的Vals:

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

每個 Val 都是一個 API 端點,可以像 cron 作業一樣進行排程。它非常適合自動化、機器人和快速實驗!

瓦爾鎮


4.Neon :無伺服器 Postgress

如果您曾經在無伺服器環境中管理 PostgreSQL 資料庫時遇到困難,您可能聽說過 Neon。它的特別之處在於它為資料庫帶來了類似 Git 的分支,讓您可以建立資料庫的即時副本以進行測試或開發。

它非常適合現代開發工作流程,您希望在不弄亂生產資料的情況下測試變更。

氖


  1. Rustify :一個用於與 HTTP API 端點互動的 Rust 函式庫

Rustify 是一個用 Rust 編寫的小型函式庫,可以減輕建構 HTTP API 的負擔。它提供了endpoint特徵和巨集幫助器,允許對各種遠端端點進行模板化。非同步和同步客戶端都可以針對端點執行請求,並且可以選擇使用Client特徵來實現自訂客戶端。

基本範例

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());

生鏽


  1. Trigger Dev :開源後台作業平台

開發人員優先的後台作業框架,使處理排程任務和 Webhooks 變得自然。與傳統的作業佇列不同,Trigger.dev 具有內建的版本控制、重試和漂亮的儀表板來監控您的作業。

真正的魔力在於它的整合——您可以連接 GitHub、Stripe 或任何 API,而無需編寫樣板程式碼。它對於處理 Webhook 驅動的工作流程或執行資源密集型後台任務特別強大,而不會影響您的主應用程式。

# Install
npm install @trigger.dev/sdk
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)
  1. Tolgee :開源本地化工具

Tolgee 是一個創新的開源在地化平台,正在改變開發人員處理應用程式翻譯的方式。它透過簡單的 ALT + 單擊介面直接在您的應用程式中實現上下文翻譯,無需編輯傳統的本地化檔案。

托爾吉


  1. OpenTelemetry :輕鬆實現有效的可觀測性

拼湊不同監控工具的日子已經一去不復返了。 OpenTelemetry 是可觀測性的瑞士軍刀,為您提供監控系統所需的一切。

它是一個綜合框架,可收集整個基礎架構中的追蹤、指標和日誌,使您能夠更輕鬆地了解複雜的分散式應用程式中發生的情況。無論是在 Kubernetes 中執行微服務還是傳統應用程式,OpenTelemetry 都提供了一種統一的方法來收集和分析性能資料,而無需鎖定供應商。

# Install for Node.js
npm install @opentelemetry/api @opentelemetry/sdk-node
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()

開放式遙測


  1. ChromaDB :高效能向量資料庫

建立需要理解和搜尋內容的人工智慧應用程式? ChromaDB 為您提供支援。它是一個開源嵌入資料庫,使向量搜尋變得輕而易舉。

開始使用它很容易。

pip install chromadb
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
)

色度資料庫


  1. Hono :用於邊緣設備的超輕量網路框架

專為邊緣建置的超輕量 Web 框架。雖然其他框架都是從伺服器開始的,但 Hono 是專門為 Cloudflare Workers 和 Deno Deploy 等邊緣運算平台而設計的。它速度快、佔用空間小,並提供熟悉的類似 Express 的 API。

開始使用它非常簡單。

npm create hono@latest

一個簡單的例子

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

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

export default app

霍諾


  1. Astro :內容驅動網站的網路框架

一個正在改變我們對 JavaScript 的看法的 Web 框架:Astro 預設提供閃電般快速的網站,向客戶端發送零 JavaScript,除非您明確需要它。它的與眾不同之處在於它的「島嶼架構」——你可以在同一個專案中混合和匹配 React、Vue 或 Svelte 元件,而 Astro 只會補充必要的部分。

這意味著您可以兩全其美:在您需要的地方使用動態元件,在其他地方使用靜態、超快的 HTML。非常適合需要選擇性互動的內容豐富的網站。

#create new project
npm create astro@latest
---
// 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>

阿斯特羅


  1. Grafbase :GraphQL聯邦平台

Grafbase 可讓您使用 TypeScript 定義 API 架構並處理所有後端複雜度。最酷的是它與現有工具的連接方式——從用於身份驗證的 Auth0 到用於文件存儲的 S3。

此外,它還會自動將您的 API 部署到邊緣,無論您的用戶身在何處,它的速度都非常快。對於想要現代 GraphQL 後端而又沒有操作難題的團隊來說,它是完美的選擇。

# Install Grafbase CLI
npm install -g grafbase

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

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

格拉夫基地


  1. Letta :用記憶建構LLMs

Letta 是一個創新的人工智慧平台,為基於 LLM 的代理帶來先進的記憶功能。它成立於加州大學柏克萊分校的天空計算實驗室,使人工智慧代理能夠在互動過程中維護持久記憶和狀態。

建立代理

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}")

建立代理後,您可以向其發送訊息:

# 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)

有關更多訊息,請查看文件。

萊塔


感謝您的閱讀,再次祝您新年快樂。


原文出處:https://dev.to/composiodev/13-top-open-source-tools-you-must-use-for-your-next-big-project-in-2025-5gld


共有 0 則留言


精選技術文章翻譯,幫助開發者持續吸收新知。

阿川私房教材:
學 JavaScript 前端,帶作品集去面試!

63 個專案實戰,寫出作品集,讓面試官眼前一亮!

立即開始免費試讀!