大改,整理项目结构,完成rust ffi调用,写好tcp接口

This commit is contained in:
LIm1tZz7 committed 2026-10-02 15:07:38 +08:00
1 parent df6d348995
commit 9758439b82
118 files changed
+8103 -6321

No files matched your search

+15 -13
View File
@@ -1,8 +1,8 @@
# Linux 流水线:Rust 存储 + Haskell 引擎/Web/CLI 的构建与测试。
#
# 这里每条命令都在 WSL Debian(cargo 1.98 / GHC 9.10.3 / stack 3.11.1)上跑通过,
# 见仓库根 README 的「构建与测试」段。IPC 用例需要 chusql-storage 可执行文件,
# 所以 Rust 先构建,Haskell 的 engine/web 用例才能真跑而不是 pending。
# 见仓库根 README 的「构建与测试」段。Haskell 这边链接并装入 libchusql_core_storage.so,
# 所以 Rust 先构建,LD_LIBRARY_PATH 指向它的输出目录,Haskell 用例才能真跑而不是 pending。
# 打包和发版资源走 .github/workflows/release.yml(tag 触发,也可手动 dispatch)。
name: linux
@@ -18,6 +18,7 @@ concurrency:
env:
CARGO_TERM_COLOR: always
LD_LIBRARY_PATH: ${{ github.workspace }}/chusql-core/storage/target/release
jobs:
linux:
@@ -39,24 +40,20 @@ jobs:
path: |
~/.cargo/registry
~/.cargo/git
chusql-storage/target
key: ${{ runner.os }}-cargo-${{ hashFiles('chusql-storage/Cargo.lock') }}
chusql-core/storage/target
key: ${{ runner.os }}-cargo-${{ hashFiles('chusql-core/storage/Cargo.lock') }}
restore-keys: ${{ runner.os }}-cargo-
- name: cargo build (release)
working-directory: chusql-storage
working-directory: chusql-core/storage
run: cargo build --release
- name: cargo build (debug, IPC 用例要它)
working-directory: chusql-storage
run: cargo build --bin chusql-storage
- name: cargo test
working-directory: chusql-storage
working-directory: chusql-core/storage
run: cargo test --release
- name: cargo clippy (-D warnings)
working-directory: chusql-storage
working-directory: chusql-core/storage
run: cargo clippy --all-targets -- -D warnings
# 故意不做 rustfmt 检查:仓库里没有 rustfmt.toml,历史代码也不是按当前 rustfmt 的
@@ -76,7 +73,8 @@ jobs:
with:
path: |
~/.stack
chusql-engine/.stack-work
chusql-core/engine/.stack-work
chusql-server/.stack-work
chusql-web/.stack-work
chusql-cli/.stack-work
key: ${{ runner.os }}-stack-${{ hashFiles('**/stack.yaml', '**/stack.yaml.lock') }}
@@ -87,7 +85,11 @@ jobs:
run: stack build --fast
- name: engine tests
working-directory: chusql-engine
working-directory: chusql-core/engine
run: stack test --fast
- name: server tests
working-directory: chusql-server
run: stack test --fast
- name: web tests