sf
轻量快速的脚本语言 - 字节码 VM / 680+ 内置函数 / AI 友好 / 跨平台
📝 产品介绍
sf 是什么
Sflang 的主程序:一个用 Rust 编写的轻量级脚本语言,字节码 VM 架构,目标速度介于 Rust 和 Python 之间、更靠近 Rust。语法接近主流高级语言,内置 680+ 函数覆盖文件、网络、数据库、加密、并发等常见场景——不依赖第三方包管理,一个可执行文件开箱即用。
亮点
- 极速执行:编译为字节码 + VM 分发,零 GC 暂停(Arc 引用计数),启动毫秒级
- 内置函数丰富:字符串/数组/正则/JSON/XML/CSV/Excel/Word、SQLite/MySQL/PostgreSQL/MSSQL/Oracle、HTTP/FTP/SSH/SFTP、AES/TXDE/RSA 加密哈希、并发(线程/Channel/Mutex)……全部开箱即用
- AI 友好设计:
help(函数名)运行时查文档,help(分类)浏览全部函数;错误信息自带参数值、上下文与常见原因列举 - 可嵌入:作为 Rust crate 嵌入宿主程序;脚本可
import复用 - 跨平台:Windows / Linux(musl 全静态,无依赖直接运行)
一键安装
# Linux / macOS
curl -fsSL https://magicdo.top/install/sf.sh | bash
# Windows (PowerShell)
irm https://magicdo.top/install/sf.ps1 | iex
30 秒上手
sf # 启动 REPL(exit 或 Ctrl-D 退出)
sf script.sf # 执行脚本
sf -e 'pln("1+1=${1+1}")' # 直接执行代码
sf --list-builtins # 列出全部内置函数
sf -h # 帮助
代码长什么样
// 问候:名字取自命令行参数
var name = argsG[0] ?? "Sflang"
pln("你好,${name}!")
/// fib 求斐波那契数
func fib(n) {
if n < 2 { return n }
return fib(n - 1) + fib(n - 2)
}
pln("fib(20) = ${fib(20)}")
// 数组高阶函数与插值
var squares = map([1, 2, 3, 4], func(x) { return x * x })
pln("平方数:${strJoin(squares, ", ")}")
// SQLite 查询:rows 是 map 数组,直接用
var db = dbConnect("sqlite3", "data.db")
var rows = dbQuery(db, "SELECT * FROM users WHERE age > ?", 18)
for i, row in rows {
pl("%v: %v", i, row["name"])
}
dbClose(db)
// 错误返回 error 值(不抛异常),AI 和人都能稳态处理
var resp = getWeb("https://api.example.com/data")
if isErr(resp) {
pln("请求失败:", getErrStr(resp))
}
AI 友好(为 AI 编程专门设计)
- 运行时文档:
help("strSplit")查签名/参数/示例/常见错误;help("regex")浏览分类;拼写容错给出相似建议 - 充分报错:内置函数失败返回的 error 带函数名、实参值与「可能原因」列举,AI 拿到信息即可自纠
- 确定性行为:一般错误返回 error 值而非抛异常,控制流可预期
跨平台二进制
| 平台 | 文件 |
|------|------|
| Windows x64 | sf.exe |
| Linux x64 | sf(musl 全静态,无 glibc 版本顾虑) |
相关链接
- 开源仓库:https://github.com/topxeq/sflang
- 语言参考:仓库
docs/LANGUAGE.md;REPL 内help()随查随用
📦 下载
⚡ 一键安装
🪟 WindowsWindows 一键安装
irm https://magicdo.top/install/sf.ps1 | iex🐧 LinuxLinux 一键安装
curl -fsSL https://magicdo.top/install/sf.sh | bash🍎 macOSmacOS 一键安装
curl -fsSL https://magicdo.top/install/sf.sh | bash