YAMLScript快速上手教程:5步安装ys和libys,跑通你的第一个YAML程序
【免费下载链接】yamlscriptProgramming in YAML项目地址: https://gitcode.com/gh_mirrors/ya/yamlscript
🐍 想在 YAML 里直接写程序?YS(YAMLScript)就是这样一种工具:它把代码变成数据,让你用熟悉的 YAML 语法写变量、函数、循环和逻辑,一条命令安装ys解释器和libys共享库,5 分钟就能跑通第一个 YAML 程序。本教程面向新手,带你完整走完安装与运行全流程。
为什么选择 YAMLScript?
传统 YAML 只是配置文件格式,想合并配置、计算字段、转换数据,就得额外写一堆脚本。YAMLScript(简称 YS)让你直接在 YAML 文件里写逻辑,而且 100% 兼容现有 YAML 文件——不加代码就只是普通 YAML,加了代码才执行。
YS 的核心优势:
- ✅32 种语言统一 API:Python、Rust、NodeJS、Go、Ruby 等,同一套语法到处用
- ⚡原生编译:
ys和libys都是原生二进制,速度快、零运行时依赖 - 🧰内置 1000+ 函数:字符串处理、数据转换、文件导入、环境变量,一应俱全
- 📦完整编程语言:底层编译为 Clojure,需要时可用全部函数式编程能力
准备工作:确认系统支持
ys和libys由 GraalVM 的 native-image 编译,目前支持:
| 操作系统 | 架构 |
|---|---|
| Linux / macOS | Intel/AMD(x86_64)、ARM(aarch64) |
💡 Windows 支持即将到来。只需
bash、curl即可安装,无需其他依赖。
第 1 步:一行命令安装 ys 和 libys
打开终端,运行安装脚本,同时安装ys命令和libys共享库:
curl https://yamlscript.org/install | bash这条命令会下载对应系统的预编译包,安装到~/.local/bin/ys和~/.local/lib/libys.so。
几个常用可选参数:
# 安装指定版本 curl https://yamlscript.org/install | VERSION=0.2.29 bash # 只装共享库 libys curl https://yamlscript.org/install | LIB=1 bash # 只装 ys 命令 curl https://yamlscript.org/install | BIN=1 bash📌 官方完整安装说明见仓库中的
doc/install.md,安装脚本源码在www/src/install。
备选方案:用 Homebrew 安装
如果你使用 macOS 或 Linux 上的 Homebrew:
brew tap yaml/yamlscript brew install ys brew install yaml/yamlscript/libys以后升级只需brew upgrade,同样省心。
第 2 步:验证安装是否成功
运行版本命令确认安装:
ys --version看到版本号输出(如ys version 0.2.29)就说明一切就绪。如果提示"找不到命令",按安装脚本的提示把~/.local/bin加入 PATH:
export PATH=$HOME/.local/bin:$PATH第 3 步:编写你的第一个 YAML 程序
新建文件hello.ys,内容如下(与仓库示例sample/www/hello.ys一致):
#!/usr/bin/env ys-0 defn main(name='world'): greet: name defn greet(name): say: "Hello, $name!"看不懂没关系,逐行解释:
- 第一行的
#!/usr/bin/env ys-0是文件头标记,声明这是一个 YS 程序 defn main(...)定义主函数,name参数默认值为worldsay: "Hello, $name!"打印字符串,$name是变量插值
这就是全部——用 YAML 写的函数定义和变量插值,是不是比想象中简单?
第 4 步:运行程序,看到输出
在终端执行:
ys hello.ys Ingy输出:
Hello, Ingy!🎉 恭喜!你的第一个 YAML 程序跑通了。不传参数时则输出Hello, world!。
想看看 YS 底层编译出了什么 Clojure 代码?用-c参数:
ys -c hello.ys学习时这个调试技巧非常有用(详见doc/tutorial.md语法基础教程)。
第 5 步:加载现有 YAML 并转成 JSON
YS 同时也是个强大的 YAML 加载器。假设你有配置文件file.yaml:
name: Fido age: 6 dog years: 42 likes: [running, fetching, playing, treats]一行命令转成 JSON:
ys --json file.yaml输出:
{"name":"Fido", "age":6, "dog years":42, "likes":["fetching", "playing", "running", "treats"]}更进一步,加上!ys-0标签后就能在 YAML 里写逻辑,让dog years自动计算、likes自动排序:
!ys-0: age =: 6 name: Fido age:: age dog years:: age * 7 likes:: sort:: [running, fetching, playing, treats]=用于赋值变量,::表示后面的值是代码表达式——就这两个符号,你已经会写"会思考的 YAML"了。
进阶:在自己编程语言中集成 libys
libys共享库可以被几乎所有语言调用,作为现有 YAML 加载器的直接替代。以 Python 为例,安装同版本库后:
import yamlscript ys = yamlscript.YAMLScript() config = ys.load(open('config.yaml').read())仓库为每种语言都提供了绑定模块和测试,例如:
- Python 绑定:
python/lib/yamlscript - Rust 绑定:
rust/src - NodeJS 绑定:
nodejs/lib - Go 绑定:
go/yamlscript.go
各语言的使用示例完整收录在根目录ReadMe.md中。
常见问题快速解答
Q:libys 版本需要和语言库版本一致吗?需要。安装某语言的 YS 加载库时,请安装完全相同版本的libys共享库。
Q:只想临时体验一下 ys 命令?可以把PREFIX指向临时目录:curl https://yamlscript.org/install | PREFIX=/tmp/yamlscript bash。
Q:没有 brew、网络受限怎么办?可以克隆源码仓库(https://gitcode.com/gh_mirrors/ya/yamlscript)后运行make install,只需 bash、git、make、curl 四个工具,Linux 上另需libz-dev包。
下一步学什么?
- 语法基础:
doc/tutorial.md(斐波那契数列例子带你入门) - 完整安装指南:
doc/install.md - 可运行的示例程序:
sample/目录下有大量 YS 示例,包括 Rosetta Code 经典题目 - 项目总览与 32 种语言用法:根目录
ReadMe.md
现在你已经完成了 YAMLScript 快速上手:5 步安装ys和libys,并跑通了第一个 YAML 程序。把配置文件从"静态数据"升级为"可执行逻辑",就从你的下一个.yaml文件开始吧!
【免费下载链接】yamlscriptProgramming in YAML项目地址: https://gitcode.com/gh_mirrors/ya/yamlscript
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考