Soup logo

Soup

Lua 5.5.1 的安全增强发行版 —— 国密 · 契约 · FFI · 沙箱 · 静态类型 · GUI

Lua 5.5.1国密 SM2/3/4契约FFI沙箱静态类型GUIwasm
下载 Soup模块开发模板了解组件
lua 一般使用 luarocks 作为包管理器 · QQ 交流群

组件

Soup 由多个可执行工具与运行时组件组成,右下角角标颜色区分。

S

soupx

解释器

动态链接版,默认推荐。直接运行脚本 / .sar 归档,绿色角标。

S

soup

解释器·静态

单文件自包含,无需外部 dll,青色角标。

S

soupc

编译器

静态类型编译 .sky;.tl/.ssf/.tk 经 orangetl 转译;可加壳打包。蓝色角标。

S

soupc_static

编译器·静态

静态自包含编译器,无外部依赖。

S

soupack

打包器

打包 .sar / 自解压 SFX 可执行文件,一键分发。橙色角标。

S

soupdbg

调试器

源码级调试,支持 .sar 解压调试、断点/单步/栈查看。红色角标。

S

soupwasm

WebAssembly

wasm 模块加载/实例化/调用(cubes 后端)。

功能

国密套件

内嵌 SM2/SM3/SM4-GCM,加解密、签名、密钥协商开箱即用(smx 模块)

契约 & Result

约束声明与校验,Ok/Err 错误传播,可组合、可静态检查

FFI

LuaJIT 风格 load/cdef/cast 调用任意原生库(cffi 模块)

WebAssembly

加载并调用 wasm 模块,多后端(soupwasm / cubes)

安全沙箱

隔离执行不可信代码,限制资源与操作(sandbox 模块)

静态类型

soupc 编译 .sky 静态类型源码,运行期零开销类型检查

原生 GUI

egui 桌面窗口:按钮/表单/布局/中文字体/缩放/Material 主题(segui 模块)

多线程

lanes 并发与 linda 通道(可选后端)

网络

LuaSocket 风格 TCP/UDP + QUIC(socket 模块 / socket.quic)

事件循环

libuv 事件循环:timer/TCP/UDP/fs/进程(luv 模块)

下载

统一通过 Gitee Release 发布(仓库:https://gitee.com/snoware/soup)。sre.zip 为运行时、sdk.zip 为开发包。

SRE

运行时 SRE

下载 sre.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 · 使用说明
SDK

开发包 SDK

下载 sdk.zip

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

去中心化能力积木 + 账户/API key + 服务注册表 + 国密(SM2/SM3)鉴权:账密验证返 API key 作网络凭证,SM2 签名验签,本地 JSON 注册表,包版本 name-version@author(后端 cubes.dll)

result

Result 类型:Ok/Err 与错误传播

sandbox

受限执行沙箱:隔离运行不可信代码

stdlib

标准库扩展:额外实用函数;含子模块 std.zstd(zstd 压缩)、std.result(复用 result 模块)(常与 package 一起预加载)

socket

网络套接字:TCP/UDP/连接/收发(后端 LuaSocket),含 QUIC 子模块 socket.quic

lanes

多线程:lanes 并发与 linda 通道

segui

原生 GUI:egui 桌面窗口(后端 egui.dll),部件/布局/字体/缩放/主题

luv

libuv 绑定:事件循环/timer/TCP/UDP/fs/进程(后端 luv.dll)

quic

QUIC 协议(RFC 9000):基于 quinn,可经 require "quic" 或 socket.quic 访问

sdbg

跨平台反调试/自我保护:检测调试器、禁止附加、单实例锁、受保护调用(Windows + POSIX)

dll

外部 DLL/共享库的 Lua 模块加载器:把任意外部 dll 按约定入口注册成 Lua 模块(复用 package.loadlib)

mail

SMTP 邮件客户端 + 本地重发队列(resend):简便收发信,多收件人,失败自动重试并指数退避(独立 dll 库)

posix

POSIX 系统接口(builtins/luaposix):进程(fork/wait/exec)、信号、文件(dirent/fcntl/stat)、套接字(sys.socket)、unistd、termios、pwd/grp 等完整 POSIX 调用(仅 POSIX 系统可用)

文档

致谢

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