spire(天擎)
整体架构

快速启动指南
本指南旨在帮助开发者快速完成仓颉语言环境配置及 Spire 项目的启动流程。所有操作基于 Windows 操作系统进行说明,Mac 与 Linux 平台支持正在开发中。
开发环境配置
1. 安装仓颉语言工具链
请严格遵循以下步骤进行环境准备:
安装仓颉 SDK
访问官方安装指南完成基础环境部署(必装组件)。配置 VS Code 开发环境
在 Visual Studio Code 插件市场搜索并安装 Cangjie 插件

下载Cangjie SDK 1.0.3 正式版至本地存储
(框架会同步最新版本SDK,下载当前最新版本即可)

参考解压路径:
D:\cangjie\cangjie通过插件设置界面完成 SDK 路径配置(操作界面示意图参考下图)


验证配置有效性后,IDE 解释器即部署完成。
安装 STDX 依赖
从仓颉官方仓库下载标准库

解压路径参考:
D:\cangjiestdx配置系统环境变量:
新建变量
CANGJIE_STDX_PATH指向解压目录
更新
PATH变量包含${CANGJIE_STDX_PATH}
同时再次检查,确保其他三个核心变量已正确配置
补充:安装OpenSSL套接字密码库
1.下载和安装
由于Spire的JWT认证使用到OpenSSL,若您的计算机上尚未安装,可以参考以下安装教程:
通过访问OpenSSL官网下载页面,下载安装的方式比较繁琐复杂,因此我们推荐您直接下载国外技术工作者制作的便捷版安装包

选择对应您操作系统的版本进行安装,我们推荐您下载含有Light名称的轻量版安装包,下载后跟循安装步骤不断进行下一步直至完成即可
参考安装路径
C:\Program Files\OpenSSL-Win64
2.配置环境变量:
进入您的控制面板新增系统环境变量


至此,您进入下一步的所有环境准备工作就绪!
在您的项目中使用Spire
获取源码并构建项目
克隆项目仓库
bashgit clone https://gitcode.com/soulsoft/spire配置Spire系统环境变量
变量值指定为您克隆Spire的目标地址

创建示例模块
新建
demo子模块,文件结构参考:bashdemo/ ├── cjpm.toml # 配置文件 └── src/ # 源代码目录 └── main.cj # 入口文件配置构建参数
切换到
demo路径下,使用code .编辑cjpm.toml文件,配置示例如下:toml[package] cjc-version = "1.0.3" name = "demo" description = "nothing here" version = "1.0.0" target-dir = "" src-dir = "" output-type = "executable" compile-option = "" override-compile-option = "" link-option = "" package-configuration = {} [dependencies] spire_web_mvc = { path = "${SPIRE_PATH}\\spire_web_mvc"} spire_web_http = { path = "${SPIRE_PATH}\\spire_web_http"} spire_web_openapi = { path = "${SPIRE_PATH}\\spire_web_openapi"} spire_web_routing = { path = "${SPIRE_PATH}\\spire_web_routing"} spire_web_hosting = { path = "${SPIRE_PATH}\\spire_web_hosting"} spire_serialization = { path = "${SPIRE_PATH}\\spire_serialization"} spire_web_staticfiles = { path = "${SPIRE_PATH}\\spire_web_staticfiles"} spire_extensions_hosting = { path = "${SPIRE_PATH}\\spire_extensions_hosting"} spire_extensions_logging = { path = "${SPIRE_PATH}\\spire_extensions_logging"} spire_extensions_options = { path = "${SPIRE_PATH}\\spire_extensions_options"} spire_extensions_injection = { path = "${SPIRE_PATH}\\spire_extensions_injection"} spire_extensions_configuration = { path = "${SPIRE_PATH}\\spire_extensions_configuration"} [target] [target.x86_64-w64-mingw32] compile-option = "-Woff unused --diagnostic-format=noColor -Woff deprecated -lcrypt32" [target.x86_64-w64-mingw32.bin-dependencies] path-option = [ "${CANGJIE_STDX_PATH}" ] [target.x86_64-unknown-linux-gnu] compile-option = "-Woff unused --diagnostic-format=noColor -Woff deprecated -ldl" [target.x86_64-unknown-linux-gnu.bin-dependencies] path-option = [ "${CANGJIE_STDX_PATH}" ] [target.aarch64-unknown-linux-gnu] compile-option = "-Woff unused --diagnostic-format=noColor -Woff deprecated -ldl" [target.aarch64-unknown-linux-gnu.bin-dependencies] path-option = [ "${CANGJIE_STDX_PATH}" ]编写代码 修改 main.cj,启动Web主机
cangjiepackage demo internal import spire_web_mvc.* internal import spire_web_http.* internal import spire_web_routing.* internal import spire_web_hosting.* internal import spire_extensions_injection.* main(args: Array<String>): Int64 { // 创建构建器 let builder = WebHost.createBuilder(args) // 注册基本服务 builder.services.addControllers() // 构建主机 let host = builder.build() // 配置请求管道 host.useRouting() // 配置端点 host.useEndpoints { endpoints => endpoints.mapGet("/hello") { context => context.response.write("Hello World! I Am Spire!") } } // 运行服务 host.run() return 0 }执行构建命令
bashcjpm update # 更新依赖 cjpm build # 构建项目 cjpm run # 启动应用浏览器
http://127.0.0.1:5000/hello查看效果
说明
由于 Cangjie 官方尚未建立中央仓库,当前依赖管理采用本地相对路径方式实现。待中央仓库建立后,文档将会同步更新。
quickstart 项目运行说明
1. 启动 Web 服务模块
进入 spire_web_quickstart 模块目录执行:
cjpm run控制台输出示例:
info: spire.hosting.lifetime
Now listening on: http://127.0.0.1:5000
info: spire.hosting.lifetime
Hosting environment: Production
info: spire.hosting.lifetime
Content root path: E:\gitcode\spire\spire_web_quickstart
info: spire.hosting.lifetime
Application started. Press Ctrl+C to shut down.2. 访问示例站点
在浏览器输入 http://127.0.0.1:5000 即可查看 Spire 博客主页(页面截图参考):