文章摘要
Parrot是一个为Gleam语言设计的类型安全SQL工具,已被sqlc网站列为社区项目。它支持Erlang目标平台,提供类型安全的SQL查询功能,开发者可通过Hex包管理器获取使用。
文章总结
项目名称:Parrot - 在Gleam中实现类型安全的SQL
核心内容: 1. 项目概述 - Parrot是一个基于sqlc的Gleam语言类型安全SQL工具 - 最新动态:已被列为sqlc官网的社区项目
- 主要特性
- 支持SQLite/PostgreSQL/MySQL三种数据库
- 支持单文件多查询
- 数据库客户端无关性
- 自动获取数据库schema
- 自动下载sqlc二进制文件
- 支持命名参数(自动推断SQL参数名)
- 使用指南
安装方式:
bash $ gleam add parrot
项目结构要求: - SQL文件需放在src/sql目录下 - 每个.sql文件可包含多个查询 - 编译后生成统一的sql.gleam模块
代码生成命令示例: ```bash
自动检测数据库
$ gleam run -m parrot
指定SQLite文件
$ gleam run -m parrot -- --sqlite <文件路径> ```
- 开发说明
- 使用just工具管理项目命令
- 提供MySQL/PostgreSQL的Docker测试脚本
- 包含完整的集成测试套件
- 已知限制
- PostgreSQL多维数组类型支持不完善
- 部分复杂类型暂用dynamic类型处理
- 目前仅支持Erlang目标环境(但生成代码可运行于JS环境)
- 未来计划
- 完善功能支持(如嵌入式结构体等)
- 欢迎社区贡献
- 致谢
- 灵感来源于squirrel项目
- 核心功能基于sqlc实现
(注:删减了安装依赖说明、具体示例代码等次要细节,保留了核心功能特性和使用要点)
评论总结
总结评论内容:
- 对Gleam语言的好奇与疑问
- "What is Gleam? No obvious hits when googling."(什么是Gleam?谷歌搜索没有明显结果)
- "there were no up front descriptions or links I could follow to find out what Gleam is"(没有前置说明或链接解释Gleam是什么)
- 对sqlc移植到Gleam的积极评价
- "I'm a big fan of sqlc...this is great to see"(我是sqlc的粉丝...很高兴看到这个移植)
- "sqlc always seemed like a really neat concept to me"(sqlc一直是我认为非常棒的概念)
- 对SQL集成方式的讨论
- "the sqlc approach is ultimately the right one...allows queries to be expressed using the full syntax of native SQL"(sqlc方法是最好的...允许使用原生SQL完整语法)
- "These sqlc-style libraries are a great solution to the problem"(这类sqlc风格的库是很好的解决方案)
- 与其他工具的比较
- "It reminds me of Jooq in Java-land"(让我想起Java领域的Jooq)
- "The best query builder I've seen is Kysely"(我见过最好的查询构建器是Kysely)
- 对SQL局限性的讨论
- "SQL's lack of composability is a more interesting problem"(SQL缺乏可组合性是个更有趣的问题)
- "the problems with views are well documented"(视图的问题已有充分记录)