Repository navigation
Releases
Basalt 0.4.0
macOS 上的桌面数据库客户端,支持 MySQL、MariaDB、PostgreSQL、SQLite,这一版加上了 Redis。Tauri 2 + Rust + React。
新功能:Redis
连接
- 新建连接时选 Redis:单机 Redis 5 及以上,或 Valkey。
- 支持密码和 ACL 用户名,也可以经 SSH 隧道、开 TLS(和别的数据库一样的「常规 / SSH / SSL」三页)。
- 集群和哨兵暂不支持。云上的集群版用它的代理地址连。
- 对象树里一个库一行,带键数;双击打开这个库的键。
浏览和编辑键
- 左边是键列表:
- 按名字筛选(支持
*?通配)、按类型筛选; - 按冒号分组成树,也可以平铺;
- 用 SCAN 一批批往下扫,不用 KEYS,大库也不会卡住服务器。
- 按名字筛选(支持
- 选中一个键,右边显示类型、剩余时间、大小、内存和编码。
- 字符串:里面是 JSON 就自动排版上色;可以直接改,⌘S 保存。
- hash、list、set、zset:像表格一样增删改,⌘S 先看要执行的命令再提交。
- 提交时先核对改的那些项还是读出来时的样子,有一项被别人改过就一条都不写。
- 改完剩余时间不变。
- stream 只能看,不能改。
- 能新建键、改名(不会覆盖已有的键)、设过期时间、删除。
- 二进制的键名按十六进制显示,改名、删除都照原样处理。
命令行
- ⌘T、连接或库的右键菜单、键列表页标题栏都能打开。
- 每个标签页一条自己的连接:
SELECT换库、MULTI开事务只影响这个标签页。 - 回复照 redis-cli 的样子显示(编号缩进、
(integer)、(nil)、(error)),INFO原样分行。 - 历史(↑↓)、命令名补全和参数提示(Tab),多行粘贴依次执行,⌘K 清屏。
- 一直在等的命令(
BLPOP这类)可以按 Esc 或「停止」停下。 FLUSHDB、FLUSHALL、KEYS、CONFIG SET、SHUTDOWN这类危险的命令执行前先确认。- 订阅、
MONITOR暂不支持。 - 带密码的命令(
AUTH等)不记进历史,回显时遮住。
服务器监控
- 连接右键「服务器监控」对 Redis 也能用:每秒命令数、连接数、内存(占上限的比例、峰值、淘汰策略)、键数、键命中率、收发流量,带最近一段的走势。
- 客户端列表:阻塞中、事务中、主从复制、空闲分开显示,认得出 Basalt 自己的连接。
- 能解除阻塞着的客户端,或者断开它(先确认)。确认之后 Redis 重启过或换了节点,就不动手。
- 慢日志列表:最近的慢命令、耗时、客户端。
- 账号没有
CLIENT、SLOWLOG权限时只少那一块,其余照常显示。
改进
- 选中 Redis 连接时,工具栏的「新建查询」变成「命令行」。
下载与安装
- 附件
Basalt-0.4.0-macos-arm64.zip:只支持 Apple 芯片的 Mac(arm64)。 - 解压后把
Basalt.app拖进「应用程序」。 - 从旧版本升级:直接替换,连接、密码、保存的查询都还在。
第一次打开
这个包是**临时签名(ad-hoc)**的:没有 Apple 开发者证书签名,也没有经过 Apple 公证,macOS 第一次会拦下来。
-
macOS 14 及更早:在「应用程序」里右键(或按住 Control 点按)Basalt,选「打开」,在弹出的对话框里再点「打开」。
-
macOS 15 及更新:右键「打开」已经不管用了。先双击打开一次,被拦下后关掉提示;到「系统设置 → 隐私与安全性」,往下找到 Basalt 那一条,点「仍要打开」,再输一次登录密码确认。
-
如果提示「已损坏,无法打开」:在终端执行下面这条命令后再打开。
xattr -dr com.apple.quarantine /Applications/Basalt.app
校验
Basalt-0.4.0-macos-arm64.zip 的 SHA-256:
50d642d1a98239a7281685f90e046247ab65ac056e1ce2d23895c5bd00bbd625
Basalt 0.3.1
macOS 上的桌面数据库客户端,支持 MySQL、MariaDB、PostgreSQL、SQLite。Tauri 2 + Rust + React。
新功能
- 在右侧看一格的完整内容:格子里放不下的长内容(JSON、长文本、二进制),选中那一格,在右侧信息面板的「值」页里看全文。也可以在表格上右键这一格,点「在右侧查看完整内容」直接打开。表数据页和查询结果都能用。
- 页头写着列名、类型、来自哪张表或哪个结果、第几行。
- JSON 对象和数组自动排版并上色,可以切回原文。排版只调整缩进,数字和字符串照原样,超过 2^53 的大整数、
1.0这类写法都不会被改掉。 - 「复制」复制当前看到的内容。特别长的内容先显示前 20 万个字符,点「显示全部」看其余的;这时复制的仍是全文。
- 底部写着字符数和行数,二进制写字节数。
- 改过还没提交的格子显示新值,标「未提交」;标了删除的行标「将删除」。NULL、空字符串、显示不了的类型、新增行还没填的格子,也各有一句说明。
改进
- 窄窗口里的表数据页工具栏:开着信息面板、窗口又窄时,按钮换到下一行;再窄就只留图标,「提交」保留文字。以前会把筛选框挤没,按钮还会伸到面板里。
下载与安装
- 附件
Basalt-0.3.1-macos-arm64.zip:只支持 Apple 芯片的 Mac(arm64)。 - 解压后把
Basalt.app拖进「应用程序」。
第一次打开
这个包是**临时签名(ad-hoc)**的:没有 Apple 开发者证书签名,也没有经过 Apple 公证,macOS 第一次会拦下来。
-
macOS 14 及更早:在「应用程序」里右键(或按住 Control 点按)Basalt,选「打开」,在弹出的对话框里再点「打开」。
-
macOS 15 及更新:右键「打开」已经不管用了。先双击打开一次,被拦下后关掉提示;到「系统设置 → 隐私与安全性」,往下找到 Basalt 那一条,点「仍要打开」,再输一次登录密码确认。
-
如果提示「已损坏,无法打开」:在终端执行下面这条命令后再打开。
xattr -dr com.apple.quarantine /Applications/Basalt.app
校验
Basalt-0.3.1-macos-arm64.zip 的 SHA-256:
514099ecbd66f42c97aa19763846485b9f92882e37ada9cb9a1c919b27434116
Basalt 0.3.0
macOS 上的桌面数据库客户端,支持 MySQL、MariaDB、PostgreSQL、SQLite。Tauri 2 + Rust + React。
新功能
- 服务器监控:连接右键「服务器监控」,看 MySQL / MariaDB / PostgreSQL 的每秒查询数(PostgreSQL 是事务数)、连接数占上限的比例、缓存命中率、收发流量、慢查询,带最近一段的走势;每 2 / 5 / 10 秒刷新一次,可以暂停。下面是会话列表,在执行的排前面,能隐藏空闲会话、按字段筛选。
- 能终止某个会话正在执行的语句,或者断开它的连接:先确认,动手前再核对一次会话还是不是确认时的那个。
- 账号权限不够、只看得到一部分会话时,页面上写明。
- SSH 隧道:
- 登录方式加了 SSH Agent,也认
~/.ssh/config里的 IdentityAgent(比如 1Password)。 - 可以串起一台或几台跳板机,写法同 OpenSSH 的 ProxyJump,每一台都核对主机密钥。
- SSH 页能从
~/.ssh/config选一台主机,自动填好地址、端口、用户名、私钥和跳板机。
- 登录方式加了 SSH Agent,也认
- JOIN 的查询结果也能改:JOIN 了几张表时一次改一张(在底栏选改哪张),只改格子、不增删行;同名的列在表头带上表名区分。
- SQL 美化:顶栏「美化」或 ⇧⌘F,按所连数据库的语法排版。有选中的文字时只美化选中的部分,一步就能撤销。排版前后逐词核对,只改空白,对不上就不改并说明原因。
- 标出错误位置:语句出错时,在编辑器里出错的那个词下面画红色波浪线,鼠标悬停能看报错原文。
- PostgreSQL 的服务器消息:
RAISE NOTICE、RAISE WARNING这类消息列在「消息」页对应的语句下面。 - 导出查询结果时,按表格上点过的排序写出。
- 查询顶栏的 SQL 助手按钮换成了醒目的流光样式。
行为变化
- 点窗口的关闭按钮不再退出应用:窗口收起来,连接和标签页都留着,点程序坞图标就回来。⌘Q 或程序坞右键「退出」才真正退出。
- 从程序坞退出、关机、注销时也会提醒:有没提交的表格修改、没保存的表结构时先问一句(以前只有 ⌘Q 会问)。关机或注销被这一问挡下时,处理完再关一次机即可。
修复
- MySQL 视图打不开:在表很多的服务器上(打开的表比
table_definition_cache多,云数据库上常见),表能看,视图却报「Prepared statement needs to be re-prepared」。现在表数据页和导出改用和 SQL 编辑器一样的方式读数据,不会再报这个错。顺带的变化:日期时间照服务器发来的原样显示,DATETIME(3)的小数秒按列定义显示三位(如08:05:09.120)。 - 钥匙串授权框不再反复弹:以前存在钥匙串里的旧密码改成启动时一次搬完,授权框都在这时弹完。中途拒绝一次就不再问,剩下的到用的时候重新填。
从 0.1.0 / 0.2.0 升级
还没搬进 secrets.json 的旧密码,会在升级后第一次启动时从钥匙串一次读完。钥匙串可能连着弹几个授权框,输入登录密码后点「始终允许」即可,之后不再碰钥匙串。钥匙串里的旧条目不会自动删,不需要了可以在「钥匙串访问」里搜 dev.basalt.app 手动删。
下载与安装
- 附件
Basalt-0.3.0-macos-arm64.zip:只支持 Apple 芯片的 Mac(arm64)。 - 解压后把
Basalt.app拖进「应用程序」。
第一次打开
这个包是**临时签名(ad-hoc)**的:没有 Apple 开发者证书签名,也没有经过 Apple 公证,macOS 第一次会拦下来。
-
macOS 14 及更早:在「应用程序」里右键(或按住 Control 点按)Basalt,选「打开」,在弹出的对话框里再点「打开」。
-
macOS 15 及更新:右键「打开」已经不管用了。先双击打开一次,被拦下后关掉提示;到「系统设置 → 隐私与安全性」,往下找到 Basalt 那一条,点「仍要打开」,再输一次登录密码确认。
-
如果提示「已损坏,无法打开」:在终端执行下面这条命令后再打开。
xattr -dr com.apple.quarantine /Applications/Basalt.app
校验
Basalt-0.3.0-macos-arm64.zip 的 SHA-256:
66f33e499d7c68aae53d12a4dcb274430becda76904753edd7b72b0ba29bdbb8
Basalt 0.2.0
macOS 上的桌面数据库客户端,支持 MySQL、MariaDB、PostgreSQL、SQLite。Tauri 2 + Rust + React。
这一版的变化
- 查询结果显示全部行:以前一个结果集最多显示 5000 行,现在完整读回来放在本机,表格先显示前 1000 行,往下滚自动接着取;底栏写着「已显示 m / 共 n 行」。点列头按整个结果排序(中文按拼音,数字按数值)。导出直接写出读到的全部结果,不再重新执行一遍。
- 查询结果可以直接改:结果来自一张带主键的表(单表 SELECT,结果里有主键列)时,可以像表数据页一样改格子、新增和删除行,⌘S 先看要执行的 SQL 再提交;提交后自动重新执行这条语句刷新结果。JOIN、子查询、UNION、视图、临时表的结果只读,底栏写明原因。
- 密码不再存钥匙串:数据库密码、SSH 密码 / 私钥口令、SQL 助手的 API Key 改存在配置目录的
secrets.json(只有当前用户能读写),不会再因为换了版本就弹钥匙串授权框。注意这个文件是明文,备份、网盘同步、本账号下运行的程序都能读到。 - 提交修改不再无限等锁:PostgreSQL 上要改的行被别的会话(比如查询标签页里没提交的事务)锁着时,等 10 秒就报错并说明原因。
- 能连空密码的 MySQL / MariaDB 账号了:以前密码留空时也会算一遍摘要发过去,空密码账号(比如本机开发库的 root)一律被拒。
- 升级到 sqlx 0.9:开 TLS 的 MySQL / MariaDB / PostgreSQL 连接上,大批量导入偶发卡死的问题由上游修复。
- 打包时给应用做完整的临时签名,下载后不再报「已损坏」。
从 0.1.0 升级
第一次用到某个保存过的密码时,Basalt 会从钥匙串读一次、搬进 secrets.json,这一下钥匙串还会请你授权,输入登录密码后点「始终允许」即可;之后不再碰钥匙串。钥匙串里的旧条目不会自动删,不需要了可以在「钥匙串访问」里搜 dev.basalt.app 手动删。
下载与安装
- 附件
Basalt-0.2.0-macos-arm64.zip:只支持 Apple 芯片的 Mac(arm64)。 - 解压后把
Basalt.app拖进「应用程序」。
第一次打开
这个包是**临时签名(ad-hoc)**的:没有 Apple 开发者证书签名,也没有经过 Apple 公证,macOS 第一次会拦下来。
-
macOS 14 及更早:在「应用程序」里右键(或按住 Control 点按)Basalt,选「打开」,在弹出的对话框里再点「打开」。
-
macOS 15 及更新:右键「打开」已经不管用了。先双击打开一次,被拦下后关掉提示;到「系统设置 → 隐私与安全性」,往下找到 Basalt 那一条,点「仍要打开」,再输一次登录密码确认。
-
如果提示「已损坏,无法打开」:在终端执行下面这条命令后再打开。
xattr -dr com.apple.quarantine /Applications/Basalt.app
校验
Basalt-0.2.0-macos-arm64.zip 的 SHA-256:
5a94c197800f7f6768a941193952b32cdcd47814575ad6d4701c90da4c3d4939
Basalt 0.1.0
macOS 上的桌面数据库客户端,支持 MySQL、MariaDB、PostgreSQL、SQLite。Tauri 2 + Rust + React。
这一版有什么
- 连接管理:分组、测试连接;密码存在 macOS 钥匙串;SSH 隧道(密码或私钥登录,第一次连接时核对主机密钥指纹)和 SSL(五种模式,可选 CA、客户端证书)
- 浏览与编辑数据:对象树、对象列表;表数据分页、排序、筛选、行内编辑,提交前先看 SQL 预览,在一个事务里提交
- SQL 编辑器:按库结构补全表名和列名;多条语句一条一条执行,每个结果集一个标签;能取消长查询;执行历史;查询能保存成文件
- 表结构设计:字段、索引、外键、选项,实时预览要执行的建表 / 改表 SQL
- 导入导出:导出 CSV、Excel、JSON、SQL INSERT;从 CSV、Excel 导入,模式有追加、更新、追加或更新、删除、复制
- 表右键:复制表、删除表、清空 / 截断、重命名、转储成 SQL 文件、维护(分析、优化、检查等)
- SQL 助手:接你自己配置的大模型(OpenAI 兼容接口或 Claude 接口),按问题生成 SQL、优化 SQL,只写不执行
- 导入连接:从 .ncx 连接导出文件,或本机另一款数据库客户端的配置里导入连接(可带密码),也能导入那边保存的查询
- 记住开着的标签页:关掉再打开,上次的标签页和没保存的 SQL 都还在
下载与安装
- 附件
Basalt-0.1.0-macos-arm64.zip:只支持 Apple 芯片的 Mac(arm64)。 - 解压后把
Basalt.app拖进「应用程序」。
第一次打开
这个包是**临时签名(ad-hoc)**的:没有 Apple 开发者证书签名,也没有经过 Apple 公证,macOS 第一次会拦下来。
-
macOS 14 及更早:在「应用程序」里右键(或按住 Control 点按)Basalt,选「打开」,在弹出的对话框里再点「打开」。
-
macOS 15 及更新:右键「打开」已经不管用了。先双击打开一次,被拦下后关掉提示;到「系统设置 → 隐私与安全性」,往下找到 Basalt 那一条,点「仍要打开」,再输一次登录密码确认。
-
如果提示「已损坏,无法打开」:在终端执行下面这条命令后再打开。
xattr -dr com.apple.quarantine /Applications/Basalt.app
还有一点也是因为临时签名:第一次读取保存的密码时,钥匙串会请你授权,点「始终允许」即可。以后每换一个新版本,还会再问一次。
校验
Basalt-0.1.0-macos-arm64.zip 的 SHA-256:
01741219ebef4dc64821193608a5d75751d520a27d6a221c438571dcac1af959