syntax = "proto3"; package api_interface; message InputTemplate { bytes input = 1; // ttf/woff2 文件的 buffer optional string out_dir = 2; // 切割后放置文件的文件夹 // ====== 构建产物配置 ====== optional CssProperties css = 5; // CSS 配置 optional string target_type = 6; // 目标类型 repeated bytes subsets = 7; // 子集 optional int32 chunk_size = 9; // 包大小 optional float chunk_size_tolerance = 10; // 包大小容差 optional int32 max_allow_subsets_count = 11; // 最大允许子集数量 optional bool test_html = 13; // 是否生成测试 HTML optional bool reporter = 14; // 是否生成 reporter.bin optional PreviewImage preview_image = 15; // 预览图像 optional string rename_output_font = 18; // 重命名输出字体 optional string build_mode = 20; // TODO 构建模式 // ====== 预分包优化项配置 ======= optional bool language_areas = 8; // 是否进行语言区域优化 optional bool multi_threads = 21; // TODO 是否使用多线程 optional bool font_feature = 22; // 是否启用字体特性 optional bool reduce_mins = 23; // 是否减少最小分包, optional bool auto_subset = 24; // 是否自动子集化 optional bool subset_remain_chars = 25; // 是否自动添加没有声明的字符 // CSS 属性配置 message CssProperties { optional string font_family = 1; // 字体家族名称 optional string font_weight = 2; // 字体粗细 optional string font_style = 3; // 字体样式 optional string font_display = 4; // 字体显示方式 repeated string local_family = 5; // 本地字体家族名称 repeated PolyfillType polyfill = 6; // Polyfill 类型 // 注释属性 optional bool comment_base = 11; // 基础注释 optional bool comment_name_table = 12; // 名称表注释 optional bool comment_unicodes = 13; // Unicode 注释 optional bool compress = 8; // 是否压缩 optional string file_name = 9; // 文件名 } // Polyfill 类型 message PolyfillType { string name = 1; // 名称 string format = 2; // 格式 } // 预览图像 message PreviewImage { string text = 1; // 会显示在 svg 中的文本 string name = 2; // svg 文件的名称 } } enum EventName { UNSPECIFIED = 0; OUTPUT_DATA = 1; // "output_data" END = 2; // "end" } message EventMessage { EventName event = 1; string message = 2; optional bytes data = 3; } message MultiMessages { repeated EventMessage messages = 1; } message OutputReport { string version = 1; // 版本号 Css css = 2; // CSS相关信息,可以直接用 string platform = 3; // 平台信息,rust 的构建平台 BundleMessage bundle_message = 24; // 构建消息 repeated NameTable name_table = 25; // name 表信息 repeated SubsetDetail subset_detail = 26; // 子集详情 message NameTable { string platform = 1; // 平台 string language = 2; // 语言 string name = 3; // 名称 string value = 4; // 值 } message SubsetDetail { uint32 id = 1; // ID string hash = 2; // 哈希值 string file_name = 6; // 文件名称 uint32 bytes = 3; // 字节数 repeated uint32 chars = 4; // 字符数组 uint32 duration = 5; // 构建时间 } message BundleMessage { uint32 origin_size = 1; // 原始大小 uint32 bundled_size = 2; // 产物大小 uint32 origin_bytes = 3; // 原始字节数 uint32 bundled_bytes = 4; // 产物字节数 } message Css { string family = 1; // 字体家族 string style = 2; // 样式 string weight = 3; // 字重 string display = 4; // 显示方式 } }