9 个必须了解的开源库,助您面向未来🎯

2025-05-27

9 个必须了解的开源库,助您面向未来🎯

我从事软件行业已有六七年,但事情变化比以往任何时候都快。人工智能正在从根本上改变我们编写软件的方式。

您不再受限于现有的技术和框架。Chatgpt 让您能够更轻松地使用任何所需的技术来构建复杂、高性能且面向未来的应用程序。

我编制了一份开源存储库列表,您可以在应用程序中实现这些存储库以构建面向未来的应用程序。

未来就是现在 GIF


1. Composio:AI集成和工具平台

人工智能无处不在,未来任何现代应用程序都需要某种形式的人工智能自动化。Composio 是将人工智能工作流添加到应用程序的最佳选择。
它集成了 100 多种第三方服务,例如 GitHub、Slack、Discord、Salesforce 等。您可以连接 GPT-4 和 Gemini 等人工智能模型,以自动化繁琐重复的工作。

例如,

  • 您可以构建全面的客服人员,与 Slack 和 Discord 上的用户互动。回复咨询、指导用户完成支持流程或安排后续行动。
  • 您可以构建编码代理,以从 Jira 票证自动修复 GitHub 中的错误。
  • 建立个人助理来处理会议和活动。

Composio 非常容易上手。

pip install composio-core
Enter fullscreen mode Exit fullscreen mode

添加 GitHub 集成。

composio add github
Enter fullscreen mode Exit fullscreen mode

Composio 代表您处理用户身份验证和授权。

以下是如何使用 GitHub 集成来为存储库加注星标的方法。

from openai import OpenAI
from composio_openai import ComposioToolSet, App

openai_client = OpenAI(api_key="******OPENAIKEY******")

# Initialise the Composio Tool Set
composio_toolset = ComposioToolSet(api_key="**\\\\*\\\\***COMPOSIO_API_KEY**\\\\*\\\\***")

## Step 4
# Get GitHub tools that are pre-configured
actions = composio_toolset.get_actions(actions=[Action.GITHUB_ACTIVITY_STAR_REPO_FOR_AUTHENTICATED_USER])

## Step 5
my_task = "Star a repo ComposioHQ/composio on GitHub"

# Create a chat completion request to decide on the action
response = openai_client.chat.completions.create(
model="gpt-4-turbo",
tools=actions, # Passing actions we fetched earlier.
messages=[
    {"role": "system", "content": "You are a helpful assistant."},
    {"role": "user", "content": my_task}
  ]
)
Enter fullscreen mode Exit fullscreen mode

运行此 Python 脚本以使用代理执行给定的指令。

Composio 与 LangChain、LlamaIndex、CrewAi 等著名框架兼容。

欲了解更多信息,请访问官方 文档,欲查看更复杂的示例,请参阅存储库的 示例 部分。

作曲 GIF

为 Composio 代码库加星标 ⭐


2. Encore:事件驱动和分布式系统让

如果您是一家初创公司,正在寻找用于构建强大的分布式应用程序的后端框架,那么您的搜索到此结束。

开发云应用程序通常会变得混乱,开发人员需要努力有效地管理和协调资源。

Encore 简化了这一过程,使得构建可扩展的事件驱动系统变得更加容易,而且没有通常的复杂性。

Encore 通过提供集成类型安全后端框架、自动基础设施配置和 DevOps 自动化的统一开发平台来简化这一混乱局面。

它在 Golang 和 Typescript 中均可用。

通过安装 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

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

再来一次 GIF

为 Encore 仓库加星标 ⭐


3. AssemblyScript - 类似 Typescript 的 WebAssembly 语言

使用 Web Assembly 或 WASM 构建应用程序以提供 Web 原生体验的趋势日益增长,尤其是对于动画、游戏、编辑器等计算密集型任务。

如果您想构建类似的应用程序,AssemblyScript 是一个不错的选择。

它是一种类似 TypeScript 的语言,  使用 **Binaryen ** 而不是 JS编译为WebAssembly 。

它与 JS/TS 语法紧密相关,非常适合开发人员无需学习低级语言即可构建近乎原生的 Web 应用程序。

使用 Assembly 脚本很容易上手。

npm install --save-dev assemblyscript
Enter fullscreen mode Exit fullscreen mode

安装后,编译器会提供一个方便的脚手架实用程序,以便在当前目录中快速建立一个新项目:

npx asinit .
Enter fullscreen mode Exit fullscreen mode

该 asinit 命令自动创建推荐的目录结构和配置文件:

assembly/index.ts 现在可以通过调用构建命令将中的示例 编译为 WebAssembly:

npm run asbuild
Enter fullscreen mode Exit fullscreen mode

这样做会将编译的二进制文件、绑定和定义文件发送到 build/ 目录中。

生成的测试用例 tests/index.js 可以通过以下方式执行:

npm test
Enter fullscreen mode Exit fullscreen mode

一旦构建完成,该目录将包含使用该模块的所有内容,就像任何其他现代 Node.js ESM 模块一样:

import * as myModule from "myModule";
Enter fullscreen mode Exit fullscreen mode

生成的代码 index.html 展示了如何在 Web 上使用模块。一个服务于模块目录的 Web 服务器(默认为 display  index.html)可以通过以下命令启动:

npm start
Enter fullscreen mode Exit fullscreen mode

有关 AssemblyScript 的更多信息,请参阅其存储库

Assemblyscript

为 AssemblyScript 代码库加星标⭐


4. Godot:多平台 2D 和 3D 游戏引擎

游戏产业价值数千亿美元,预计未来还会持续增长。多项调查显示,过去十年,年轻人的游戏时间大幅增长。
如果您想开发游戏,Godot 将是一个不错的选择。它用 C 语言编写,而且用途广泛。使用 Godot,您甚至可以构建动画、AR/VR 和模拟软件。

使用 Godot 构建的游戏可以轻松导出到 Web、MacOS、Linux、Windows、Android、iOS 和主机平台。借助游戏引擎,您还可以构建计算密集型应用程序,例如照片编辑器、动画等。

更多信息请参阅其官方 文档。

戈多

为 Godot 仓库加星标 ⭐


5. Gitpod——按需云开发平台

如果您正在为团队寻找基于云的开发环境,那么您的搜索就到此结束了。Gitpod 是一个开源开发环境,可以自动设置编码环境。

Gitpod 提供自动化和标准化的开发环境,可在您的云或本地机器上自托管运行。

有关 Gitpod 的更多信息,请参阅其官方文档

找个软件 GIF

为 Gitpod 仓库加星标⭐


6. Turborepo - 针对 JS/TS 优化的 Mono 仓库管理系统

随着软件规模的增长,构建 Mono 软件仓库会变得愈发困难。如果管理不善,它甚至会变成一场噩梦。

Turborepo 解决了 Mono 仓库的扩展问题。它是一款专为 JS/TS 应用设计的高性能构建工具,旨在加速 单包工作区中的工作流程。

主要特点

  • 增量构建:仅重建代码库的更改部分以节省时间。
  • Monorepo 管理:针对管理单个存储库中的多个项目进行了优化。
  • 缓存:利用本地和远程缓存来避免冗余构建。
  • 并行执行:同时运行测试和构建等任务以获得更快的结果。

快速上手。

npx create-turbo@latest
Enter fullscreen mode Exit fullscreen mode

启动存储库将包含以下内容:

  • 两个可部署的应用程序
  • 三个共享库,供其余 monorepo 使用
npm install turbo --global
Enter fullscreen mode Exit fullscreen mode

turbo 一旦全局安装完毕,你就可以从终端运行脚本 ,

更多信息请参阅文档页面

宝来宝

为 Turborepo 仓库加星标 ⭐


7. Tauri——为桌面构建极速应用程序

Tauri 是一个轻量级、快速且安全的框架,用于使用 HTML、CSS 和 JavaScript 等 Web 技术构建跨平台应用程序。该应用程序的后端是一个基于 Rust 的二进制文件,并带有一个可与前端交互的 API。

主要特点

  • 为多个平台构建应用程序:Windows、MacOS 和 Linux。
  • 它使用系统的WebView,避免捆绑浏览器。
  • 核心采用 Rust 构建,以确保隐私和速度。
  • 支持 Svelte、react、Vue 等 JS/TS 框架。

查看文档以了解有关Tauri 的更多信息。

金牛座 GIF

探索 Tauri 存储库⭐


8. gRPC -一个 RPC 库和框架

REST API 不足以构建快速、分布式、低延迟的微服务。您需要快速且强大的功能,而 gRPC 正是您的理想之选。

它是 Google 的一款开源工具,旨在实现跨平台和跨语言的服务之间的高效通信。它使用 HTTP/2 和协议缓冲区 (protobufs) 进行序列化。

主要特点

  • gRPC 使用 HTTP/2,允许通过单个连接多路复用多个请求,从而减少延迟并提高性能。
  • gRPC 支持多种编程语言。
  • gRPC 支持双向流式传输,实现客户端和服务器之间的实时数据交换。

查看文档以了解更多信息。

格格不入 GIF

探索 gRPC 存储库⭐


9. Mem0:AI 应用的内存层

构建人工智能应用的一大挑战是内存处理。这涉及到高效存储和智能检索过去的交互,从而显著提升用户体验。

Mem0 让开发者能够更轻松地为 AI 应用添加内存层。它能够记住用户偏好,适应个人需求并持续改进,使其成为客服聊天机器人、AI 助手和自主系统的理想选择。

通过安装开始使用 Mem0  pip

pip install mem0ai
Enter fullscreen mode Exit fullscreen mode

初始化Mem0

from mem0 import Memory
m = Memory()
Enter fullscreen mode Exit fullscreen mode

内存操作。

# 1. Add: Store a memory from any unstructured text
result = m.add("I am working on improving my tennis skills. Suggest some online courses.", user_id="alice", metadata={"category": "hobbies"})

# Created memory --> 'Improving her tennis skills.' and 'Looking for online suggestions.'

# 2. Update: update the memory
result = m.update(memory_id=<memory_id_1>, data="Likes to play tennis on weekends")

# Updated memory --> 'Likes to play tennis on weekends.' and 'Looking for online suggestions.'

# 3. Search: search related memories
related_memories = m.search(query="What are Alice's hobbies?", user_id="alice")

# Retrieved memory --> 'Likes to play tennis on weekends'

# 4. Get all memories
all_memories = m.get_all()
memory_id = all_memories["memories"][0] ["id"] # get a memory_id

# All memory items --> 'Likes to play tennis on weekends.' and 'Looking for online suggestions.'

# 5. Get memory history for a particular memory_id
history = m.history(memory_id=<memory_id_1>)

# Logs corresponding to memory_id_1 --> {'prev_value': 'Working on improving tennis skills and interested in online courses for tennis.', 'new_value': 'Likes to play tennis on weekends' }
Enter fullscreen mode Exit fullscreen mode

有关 Mem0 功能的更多信息,请参阅其官方 文档

 更多信息请参阅官方 文档。

内存0

探索 Mem0 存储库⭐


感谢您的阅读。

文章来源:https://dev.to/composiodev/9-must-know-open-source-libraries-to-future-proof-yourself-f95
PREV
我测试了 OpenAI 的 o1-preview 几个小时——你不会相信我发现了什么🤯
NEXT
使用 Nodejs、Expressjs 和 Mongodb 的博客 API 介绍先决条件