组件
Soup 由多个可执行工具与运行时组件组成,右下角角标颜色区分。
soupx
解释器动态链接版,默认推荐。直接运行脚本 / .sar 归档,绿色角标。
soup
解释器·静态单文件自包含,无需外部 dll,青色角标。
soupc
编译器静态类型编译 .sky;.tl/.ssf/.tk 经 orangetl 转译;可加壳打包。蓝色角标。
soupc_static
编译器·静态静态自包含编译器,无外部依赖。
soupack
打包器打包 .sar / 自解压 SFX 可执行文件,一键分发。橙色角标。
soupdbg
调试器源码级调试,支持 .sar 解压调试、断点/单步/栈查看。红色角标。
soupwasm
WebAssemblywasm 模块加载/实例化/调用(cubes 后端)。
功能
国密套件
内嵌 SM2/SM3/SM4-GCM,加解密、签名、密钥协商开箱即用(smx 模块)
契约 & Result
约束声明与校验,Ok/Err 错误传播,可组合、可静态检查
FFI
LuaJIT 风格 load/cdef/cast 调用任意原生库(cffi 模块)
WebAssembly
加载并调用 wasm 模块,多后端(soupwasm / cubes)
安全沙箱
隔离执行不可信代码,限制资源与操作(sandbox 模块)
静态类型
soupc 编译 .sky 静态类型源码,运行期零开销类型检查
原生 GUI
egui 桌面窗口:按钮/表单/布局/中文字体(segui 模块)
多线程
lanes 并发与 linda 通道(可选后端)
网络
LuaSocket 风格 TCP/UDP 连接收发(socket 模块)
事件循环
libuv 事件循环:timer/TCP/UDP/fs/进程(luv 模块)
下载
统一通过 Gitee Release 发布(仓库:https://gitee.com/snoware/soup)。sre.zip 为运行时、sdk.zip 为开发包。
Soup Runtime —— 完整运行时。包含解释器 (soupx / soup) 与全部运行时依赖 dll (smx / cffi / cubes / soupwasm / zstd / egui / soup55b / lib),并含中文字体 (MiSans) 与使用说明 (README.md),解压即用。
- soupx.exe · 解释器(动态链接,推荐)
- soup.exe · 解释器(静态自包含)
- soup55b.dll · 核心运行库
- smx.dll · 国密 SM2/SM3/SM4-GCM · 契约/Result
- cffi.dll · FFI 加载原生库
- cubes.dll · cubes 后端
- soupwasm.dll · WebAssembly
- zstd.dll · .sar/.lke 解压
- egui.dll · 原生 GUI (segui)
- lib/ · 运行时纯 Lua 库 (std / orangetl)
- fonts/MiSans VF.ttf · 中文字体(与 sre 一同分发,许可声明见 LICENSE-MiSans.txt)
- luvi/ + luvit/ · Lua 事件循环运行时(luvi.exe + luvit Lua 层)
- README.md · 使用说明
Soup Dev Kit —— 开发工具链。包含编译器 (soupc)、静态库、导入库、头文件、打包器、MiSans 中文字体(与 SDK 一同分发,许可声明见 LICENSE-MiSans.txt)与使用说明 (README.md)。
- soupc.exe · 编译器 / 静态类型 (.sky;.tl 经内置 Teal/orangetl 转译)
- soupc_static.exe · 编译器(静态自包含)
- libsoup.a / soup55.def · C 链接静态库 + 导入库
- soupdbg.exe · 调试器(支持 .sar 解压调试)
- headers/ · soup.h / souplib.h / sauxlib.h / soup.hpp
- soupack.exe · 打包器 (.sar / SFX)
- fonts/MiSans VF.ttf · 中文字体(与 SDK 一同分发,许可声明见 LICENSE-MiSans.txt)
- luvi/ + luvit/ · Lua 事件循环运行时(luvi.exe + luvit Lua 层)
- README.md · 使用说明(含 C 扩展 / .sar 打包 / 字体加载示例)
内置模块
package
模块系统:require/搜索路径/loadlib(含原生 C 库加载)
coroutine
协程:create/resume/yield/status/wrap
debug
调试接口:getinfo/sethook/getlocal/upvalue 操作
io
文件与流式 I/O:open/lines/read/write
math
数学库:随机数/三角函数/取整/取整类
os
操作系统接口:时间/时钟/进程执行/环境变量
string
字符串处理:模式匹配/格式化/字节操作
table
表操作:insert/remove/sort/concat/move
utf8
UTF-8 编码处理:字符迭代/编码/长度
smx
国密套件:SM2/SM3/SM4-GCM/ECDH(后端 smx.dll)
cffi
FFI:load/cdef/cast/new/string/sizeof(后端 cffi.dll)
wasm
WebAssembly:加载/实例化/调用 wasm 模块(后端 soupwasm.dll)
contract
契约与 Result 元数据:约束声明与校验
cubes
Cubes 辅助模块(后端 cubes.dll)
result
Result 类型:Ok/Err 与错误传播
sandbox
受限执行沙箱:隔离运行不可信代码
stdlib
标准库扩展:额外实用函数(常与 package 一起预加载)
socket
网络套接字:TCP/UDP/连接/收发(后端 LuaSocket)
lanes
多线程:lanes 并发与 linda 通道
segui
原生 GUI:egui 桌面窗口(后端 egui.dll),部件/布局/字体
luv
libuv 绑定:事件循环/timer/TCP/UDP/fs/进程(后端 luv.dll)
文档
致谢
Soup 开发
S.A. @SOrg::SNOWARE
核心语言
Lua 5.5.1 — R. Ierusalimschy, L. H. de Figueiredo, W. Celes (PUC-Rio)
静态类型
Teal (tl) — labs.eleven.io; orangetl — purplesyringa (Anna K.)
FFI
LuaJIT ffi — Mike Pall;libffi — Anthony Green 等
压缩
zstd — Meta(Facebook)
原生 GUI
egui / eframe / wgpu — Emil Ernerfeldt
多线程 lanes
主要开发者:Benoit Germain(Lua Lanes 项目)。
国密后端
libsmx — 黄鑫泰(字节跳动),SM2/SM3/SM4-GCM 国密套件 Rust 实现
WebAssembly
wasm-micro-runtime (WAMR) — 英特尔与字节码联盟
事件循环
luvit + luvi — luvit 团队(内嵌 libuv / luvi C 运行时)
自研组件
smx(契约)· soupack · c2/cubes — S.A. @SOrg::SNOWARE
