UStackUStack
Better Sol icon

Better Sol

Better Sol:用 TypeScript 编写 Solana 程序,无需 Rust。单文件同时定义链上程序和带类型的客户端,交互更类型安全。

Better Sol

什么是 Better Sol?

Better Sol 是一个使用 TypeScript 而非 Rust 编写 Solana 程序的工具。它采用单文件程序源码模式,一个文件同时定义链上程序和用于与之交互的类型化客户端。

核心目的是通过将程序逻辑与对应客户端类型保持在一起,来简化 Solana 开发者工作流,从而无需切换到 Rust 即可构建和使用 Solana 功能。

主要特性

  • TypeScript 优先的 Solana 程序开发:用 TypeScript 而非 Rust 编写程序。
  • 单文件程序 + 类型化客户端:一个文件中同时定义 Solana 程序和类型化客户端。
  • 类型化客户端生成:客户端接口与程序定义绑定,使交互具备类型感知。
  • 减少语言边界:链上代码和客户端 API 保持在同一 TypeScript 代码库中。

如何使用 Better Sol

  • 创建单个 Better Sol 文件,同时包含 Solana 程序定义和类型化客户端。
  • 在同一文件中实现程序逻辑。
  • 从同一代码中使用类型化客户端构建交易并与程序交互。
  • 遵循项目文档的工作流(网站提供)来构建和部署 Solana 程序。

使用场景

  • 用 TypeScript 构建 Solana 智能合约:偏好用 TypeScript 处理前后端逻辑的团队,可以将 Solana 开发保持在同一语言中。
  • 为程序交互创建强类型化客户端:开发者可使用类型化客户端接口,减少调用指令时的手动连接。
  • 原型化新链上功能:程序和客户端置于同一位置,便于更快迭代指令形状和数据类型。
  • 在 TypeScript 单体仓库中共享程序 API:当客户端代码与其他 TypeScript 服务并存时,统一文件可简化程序与消费者代码的边界。
  • 教育或引入开发者接触 Solana:希望避免 Rust 的开发者,仍可通过 TypeScript 处理程序定义和客户端使用。

常见问题

Better Sol 需要编写 Rust 程序吗?
否。产品定位明确表示可用 TypeScript 编写 Solana 程序,无需 Rust。

程序和客户端是分开定义还是一起定义?
Better Sol 被描述为使用单个文件同时定义程序和类型化客户端。

类型化客户端基于什么语言?
类型化客户端在 TypeScript 开发上下文中描述,因为程序是用 TypeScript 编写的。

我能仅用 Better Sol 为现有程序进行客户端集成吗?
提供的网站内容聚焦于单文件中定义程序和类型化客户端。它未明确确认是否支持仅客户端使用已部署的外部定义程序。

替代方案

  • 基于 Rust 的 Solana 开发框架:如果您熟悉 Rust,可用许多 Solana 工具链原生支持的语言编写程序,但通常需维护链上 Rust 与链下客户端代码的清晰边界。
  • Solana 的 TypeScript 客户端库:如果主要目标是类型化或结构化客户端交互,即使程序用 Rust 编写,独立的客户端工具也能提供帮助。
  • 通用区块链 SDK 方法:可用标准库构建 Solana 指令布局和交易流程,但可能需更多手动工作来保持客户端类型与程序逻辑对齐。
  • 其他“程序定义 + 生成客户端”工具模式:某些工具从程序规范生成客户端代码;这些工具在将指令模式连接到客户端类型的方式上可能不同,且可能是 Rust 优先或 TypeScript 优先。