Releases: sin1111yi/ralqlator
Releases · sin1111yi/ralqlator
Release list
v0.5.1 — MCP Server[fix]
v0.5.1 — MCP Server[fix]
✨ New: MCP Server (ralqlator-mcp)
ralqlator 现在自带一个 Model Context Protocol (MCP) 服务器,将其所有的计算能力以工具的形式开放给 AI 助手。
# 启动 MCP 服务器(stdio 传输)
ralqlator-mcp服务器通过标准输入/输出读写 JSON-RPC 2.0 格式的请求和响应,每行一条。
可用工具
| 工具 | 描述 |
|---|---|
calculate |
数学表达式求值,支持精确有理数运算和所有内置函数。可选 format 参数(decimal / hex / oct / bin) |
calculate_bitwise |
位运算表达式求值(仅整数)。可选 format 参数 |
list_functions |
列出所有 50+ 个内置数学函数及其说明 |
list_constants |
列出内置常量(C_PI, C_E)和用户自定义常量 |
list_user_definitions |
列出所有用户自定义函数、序列和常量 |
create_user_definition |
创建用户自定义函数、序列或常量 |
delete_user_definition |
按名称删除用户自定义定义 |
list_operators |
列出所有支持的运算符及其描述和优先级 |
调用示例
{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"calculate","arguments":{"expression":"sin(C_PI/2)"}}}{"jsonrpc":"2.0","id":1,"result":{"content":[{"type":"text","text":"1"}]}}{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"calculate","arguments":{"expression":"255","format":"hex"}}}{"jsonrpc":"2.0","id":2,"result":{"content":[{"type":"text","text":"0xFF"}]}}用户定义管理:
{"jsonrpc":"2.0","id":3,"method":"tools/call","params":{"name":"create_user_definition","arguments":{"name":"double","type":"function","expression_or_value":"x*2","params":["x"]}}}
{"jsonrpc":"2.0","id":4,"method":"tools/call","params":{"name":"calculate","arguments":{"expression":"double(21)"}}}
{"jsonrpc":"2.0","id":5,"method":"tools/call","params":{"name":"delete_user_definition","arguments":{"name":"double"}}}🔧 技术细节
- 纯 JSON-RPC 2.0 实现:无 MCP SDK 依赖,仅使用已有的
serde+ 新增serde_json - 复用现有 API:MCP 服务器直接调用
calculator::calculate_with_functions()和calculator::calculate_bitwise(),与 CLI 使用同一套计算引擎 - 用户自定义数据:自动从
~/.ralqlator加载用户自定义函数和常量 - 标准错误码:JSON-RPC 约定的错误码(parse error -32700、invalid params -32602、method not found -32601 等)
📦 新增文件
| 文件 | 说明 |
|---|---|
src/mcp.rs |
MCP 协议层——类型定义、5个工具处理器(~600行) |
src/bin/ralqlator_mcp.rs |
二进制入口——stdio JSON 读取/写入循环 |
docs/mcp-architecture.md |
架构设计文档 |
⚙️ 构建
cargo build --release --bin ralqlator-mcp二进制文件在 target/release/ralqlator_mcp(注意文件名中为下划线)。
🧪 测试
- 5 个库单元测试全部通过
- MCP 功能测试 12/12 全部通过(覆盖计算、位运算、格式输出、用户定义 CRUD、运算符列表、错误处理等场景)
💬 其他改动
=运算符的返回值从yes/no改为true/false(与==保持一致)
v0.4.0
Ralqlator v0.4.0 Release Notes
Release Date: 2026-03-30
Git Tag: v0.4.0
Commit: d9741f5
🎉 核心亮点
v0.4.0 引入了 用户定义持久化存储 功能 - 您自定义的函数、数列和常量现在会自动保存并在会话间加载!
✨ 新功能
用户定义持久化存储
所有用户定义的元素会自动持久化到 ~/.ralqlator(隐藏 TOML 文件):
-
自动保存 当您:
- 创建定义(通过
create命令或-c参数) - 删除定义(通过
destroy命令或-d参数) - 退出 REPL(
quit命令)
- 创建定义(通过
-
自动加载 当您:
- 启动 REPL
- 从命令行运行计算
新增 CLI 参数
| 参数 | 说明 | 示例 |
|---|---|---|
-c, --create <DEF> |
创建函数/数列/常量 | ralqlator -c "func f(x) = x * 2" |
-d, --destroy <NAME> |
删除用户定义 | ralqlator -d f |
-L, --list |
列出所有用户定义 | ralqlator -L |
新增 REPL 命令
| 命令 | 说明 | 示例 |
|---|---|---|
destroy <name> |
删除用户定义 | > destroy f |
存储文件格式 (TOML)
[functions.square]
params = ["x"]
expr = "x * x"
[functions.triangle]
params = ["n"]
expr = "n * (n + 1) / 2"
[constants]
G = 9.81
SPEED_OF_LIGHT = 299792458.0📦 新增模块
storage.rs
新的 TOML 持久化模块:
save_user_data()- 保存定义到~/.ralqlatorload_user_data()- 从~/.ralqlator加载delete_user_definition()- 删除并自动保存get_storage_path()- 获取存储文件路径
🧪 测试
新测试文件:09_storage_tests.rs
19 个全面的测试用例 覆盖:
- 创建操作(函数、数列、常量)
- 列表操作(空、单个、多个)
- 删除操作(函数、常量、不存在、大小写敏感)
- 自动保存功能
- 自动加载功能
- 完整工作流集成
- 跨会话持久化
- 存储文件格式验证
- 边界情况
测试统计
| 类别 | 数量 |
|---|---|
| 总测试数 | 450+ |
| 测试文件 | 10 |
| 新增测试 (v0.4.0) | 19 |
| 测试覆盖 | 所有核心功能 |
📋 使用示例
命令行
# 创建函数
ralqlator -c "func double(x) = x * 2"
# 创建数列
ralqlator -c "seq triangle(n) = n * (n + 1) / 2"
# 创建常量
ralqlator -c "const G 9.81"
# 列出所有定义
ralqlator -L
# 立即使用
ralqlator "double(21)" # 输出:42
ralqlator "triangle(10)" # 输出:55
ralqlator "G * 10" # 输出:98.1
# 删除定义
ralqlator -d double
# 验证删除
ralqlator -LREPL
$ ralqlator
Type 'q' or 'quit' to exit...
> create func f(x) = x + 100
Function 'f' defined
> f(5)
105
> destroy f
Deleted 'f' and saved
> quit
# 自动保存所有定义🔧 技术变更
依赖项
| 库 | 版本 | 用途 |
|---|---|---|
serde |
1.0 | 序列化框架 |
toml |
0.8 | TOML 格式支持 |
修改文件
| 文件 | 变更 |
|---|---|
Cargo.toml |
添加 serde, toml 依赖 |
Cargo.lock |
更新依赖 |
src/storage.rs |
新增 - 持久化模块 |
src/main.rs |
CLI 参数处理 |
src/cli.rs |
新增 CLI 参数 |
src/repl.rs |
自动保存/加载,destroy 命令 |
src/lib.rs |
导出 storage 模块 |
tests/09_storage_tests.rs |
新增 - 存储测试 |
📚 文档更新
- README.md: 添加持久化文档、示例、CLI 参数
- README_zh.md: 中文文档更新
- agent.md: 开发者文档,包含新模块信息
- PKGBUILD: 更新为 v0.4.0,添加 aarch64 支持
🚀 迁移指南
从 v0.3.x 升级到 v0.4.0
无破坏性变更! 您现有的用户定义将继续工作。
可选:将旧定义迁移到新的持久化系统:
- 使用旧会话启动 REPL
- 重新创建重要的函数/常量
- 它们会自动保存到
~/.ralqlator
🐛 Bug 修复
本次发布无 Bug 修复。
⚠️ 破坏性变更
无。完全保持向后兼容。
🔗 链接
- GitHub Release: https://github.com/sin1111yi/ralqlator/releases/tag/v0.4.0
- 文档: https://github.com/sin1111yi/ralqlator/blob/main/README.md
- 中文文档: https://github.com/sin1111yi/ralqlator/blob/main/README_zh.md
- 开发者文档: https://github.com/sin1111yi/ralqlator/blob/main/agent.md
Copyright (C) 2026 Ralqlator Contributors
License: GPLv3