Hacker News 中文摘要

RSS订阅

Parrot – Gleam中的类型安全SQL,支持SQLite、PostgreSQL和MySQL -- Parrot – type-safe SQL in Gleam, supports SQlite, PostgreSQL and MySQL

文章摘要

Parrot是一个为Gleam语言设计的类型安全SQL工具,已被sqlc网站列为社区项目。它支持Erlang目标平台,提供类型安全的SQL查询功能,开发者可通过Hex包管理器获取使用。

文章总结

项目名称:Parrot - 在Gleam中实现类型安全的SQL

核心内容: 1. 项目概述 - Parrot是一个基于sqlc的Gleam语言类型安全SQL工具 - 最新动态:已被列为sqlc官网的社区项目

  1. 主要特性
  • 支持SQLite/PostgreSQL/MySQL三种数据库
  • 支持单文件多查询
  • 数据库客户端无关性
  • 自动获取数据库schema
  • 自动下载sqlc二进制文件
  • 支持命名参数(自动推断SQL参数名)
  1. 使用指南 安装方式: bash $ gleam add parrot

项目结构要求: - SQL文件需放在src/sql目录下 - 每个.sql文件可包含多个查询 - 编译后生成统一的sql.gleam模块

代码生成命令示例: ```bash

自动检测数据库

$ gleam run -m parrot

指定SQLite文件

$ gleam run -m parrot -- --sqlite <文件路径> ```

  1. 开发说明
  • 使用just工具管理项目命令
  • 提供MySQL/PostgreSQL的Docker测试脚本
  • 包含完整的集成测试套件
  1. 已知限制
  • PostgreSQL多维数组类型支持不完善
  • 部分复杂类型暂用dynamic类型处理
  • 目前仅支持Erlang目标环境(但生成代码可运行于JS环境)
  1. 未来计划
  • 完善功能支持(如嵌入式结构体等)
  • 欢迎社区贡献
  1. 致谢
  • 灵感来源于squirrel项目
  • 核心功能基于sqlc实现

(注:删减了安装依赖说明、具体示例代码等次要细节,保留了核心功能特性和使用要点)

评论总结

总结评论内容:

  1. 对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是什么)
  1. 对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一直是我认为非常棒的概念)
  1. 对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风格的库是很好的解决方案)
  1. 与其他工具的比较
  • "It reminds me of Jooq in Java-land"(让我想起Java领域的Jooq)
  • "The best query builder I've seen is Kysely"(我见过最好的查询构建器是Kysely)
  1. 对SQL局限性的讨论
  • "SQL's lack of composability is a more interesting problem"(SQL缺乏可组合性是个更有趣的问题)
  • "the problems with views are well documented"(视图的问题已有充分记录)