VEP 2: vindex.toml 标准格式

状态
草稿
类型
信息
创建日期
2026-6-30
作者
MutableMappingSequence, Fexcode

VEP 2 - vindex.toml 标准格式与包名缩写规则

摘要

本 VEP 规定了 vindex.toml 的标准格式——所有 Vix 项目的配置文件。

vindex.toml 是所有 Vix 项目的标准配置文件,用于声明项目的规范数据,如项目元数据、依赖等。

通过规定 vindex.toml 的具体格式,开发者不仅能快速编写准确的配置文件而不会产生歧义,轻松管理项目,还能自由使用官方和第三方包管理器。同时,社区贡献者只要能遵循本标准,也能自由开发自己的包管理器。

动机

随着 Vix 的发展,越来越多的第三方工具和库涌现出来。如果没有标准的配置文件来描述这些工具和库,用户可能需要猜测和思考才能弄清楚工具的用途,包管理器也无法以简单的方式解析依赖。为解决此问题,vindex.toml 应运而生。

理由

作为一门具有丰富社区支持的系统级编程语言,管理大型项目和使用依赖是不可避免的。为了以简单的方式描述项目信息,我们引入了名为 vindex.toml 的配置文件来简化这一过程。

规范

[project] 表是 vindex.toml 中唯一必需的节。它描述项目元数据及其依赖。

[project] 字段

字段 类型 必需 默认值 描述
name string 项目名称,用作编译产物的默认输出文件名。
version string 项目版本。
entrypoint string "main.vix" 编译项目的入口文件。第三方库不得设置此项;库入口必须为 main.vix
deps array [] 依赖包列表。每个元素是一个依赖说明符(支持 add 命令的所有简写格式)。

依赖说明符格式

deps 中的每个元素使用以下简写格式之一,add 命令会将其解析为完整的 URL:

格式 示例 解析后的 URL
裸名称(对于VTool) pnum github.com/vixlang/vtool-vnet
裸名称(对于第三方库) vnet github.com/vixlang/vlib-vnet
user/repo vixlang/vlib-vnet github.com/vixlang/vlib-vnet
user.repo fexcode.vnet github.com/fexcode/vnet
user.repo@branch fexcode.vnet@master github.com/fexcode/vnet #master
host:user.repo gitee.com:fexcode.vnet gitee.com/fexcode/vnet
@user.repo @fexcode.vnet gitee.com/fexcode/vnet

示例

[project]
name = "webapp"
version = "1.0.0"
entrypoint = "app/main.vix"
deps = [
    "vnet@master",
    "@fexcode.vlib-html",
    "vlib-json",
]

This site uses Just the Docs, a documentation theme for Jekyll.