# Sqlite3\_compress: Custom compression functions in crystal-sqlite3

**URL:** <https://forum.crystal-lang.org/t/sqlite3-compress-custom-compression-functions-in-crystal-sqlite3/8213>\
**Category:** Community\
**Created:** [July 9, 2025, 5:18am UTC](https://forum.crystal-lang.org/t/sqlite3-compress-custom-compression-functions-in-crystal-sqlite3/8213 "2025-07-09T05:18:15Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![plambert](https://yyz2.discourse-cdn.com/flex036/user_avatar/forum.crystal-lang.org/plambert/32/618_2.png) [@plambert](https://forum.crystal-lang.org/u/plambert)\
**Post date:** [July 9, 2025, 5:18am UTC](https://forum.crystal-lang.org/t/sqlite3-compress-custom-compression-functions-in-crystal-sqlite3/8213/1 "2025-07-09T05:18:15Z")

</div>

I’ve also just released sqlite3\_compress, which implements gzip, deflate, and zlib compression in SQLite user defined functions.

It might serve as an example of how to implement custom functions. Or it might serve as an example of how _not_ to do it… let me know what you think, either way!

For example: `db.exec "INSERT INTO my_table (url, html_gzip) VALUES (?, COMPRESS_GZIP(?))", url, html`

> **[GitHub - plambert/sqlite3\_compress.cr: Compression functions for sqlite3 in crystal](https://github.com/plambert/sqlite3_compress.cr)**
>
> Compression functions for sqlite3 in crystal

Paul M Lambert
