# Could really use a deflate algorithm node for compression

**URL:** <https://community.n8n.io/t/could-really-use-a-deflate-algorithm-node-for-compression/76758>\
**Category:** n8n.io - Website\
**Created:** [February 11, 2025, 6:12am UTC](https://community.n8n.io/t/could-really-use-a-deflate-algorithm-node-for-compression/76758 "2025-02-11T06:12:46Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![chris4](https://avatars.discourse-cdn.com/v4/letter/c/50afbb/32.png) [@chris4](https://community.n8n.io/u/chris4)\
**Post date:** [February 11, 2025, 6:12am UTC](https://community.n8n.io/t/could-really-use-a-deflate-algorithm-node-for-compression/76758/1 "2025-02-11T06:12:46Z")

</div>

This limitation has me in a tizzy today. 🙂

Compress data with deflate algorithm using a compression level of 9 (best compression). `pako` is available as a global variable.

Trying to get a rendered mermaid diagram from [kroki.io](http://kroki.io). Turns out deflate is a limitation of the hosted version.

1. Encode the diagram as UTF8 in a `Uint8Array` (using the `textEncode` function declared above)
2. Compress data with deflate algorithm using a compression level of 9 (best compression). `pako` is available as a global variable.
3. Encode to Base64 using `btoa` global function
4. Replace `+` and `/` characters to make it “URL safe”

Thanks.

---

<div class="post-metadata">

**Author:** ![Gsyltc](https://dub1.discourse-cdn.com/n8n/user_avatar/community.n8n.io/gsyltc/32/17911_2.png) [@Gsyltc](https://community.n8n.io/u/Gsyltc)\
**Post date:** [June 13, 2025, 2:32pm UTC](https://community.n8n.io/t/could-really-use-a-deflate-algorithm-node-for-compression/76758/2 "2025-06-13T14:32:41Z")

</div>

Hi Chris4,

Here is something that could help you

> import base64;  
> import zlib;
> 
> text = \_input.item.json.‘YOUR TEXT’
> 
> encrypted\_text = base64.urlsafe\_b64encode(zlib.compress(t.encode(‘utf-8’), 9)).decode(‘ascii’)
> 
> \_input.item.json.myNewField = str(encrypted\_text)
> 
> return \_input.item

You need to use 2 blocs (1 for code, 1 for http request to Kroki)

 ![kroki1](https://europe1.discourse-cdn.com/n8n/original/3X/f/c/fc01e96982226dc6390ce28e54f7dad532f80ca3.png)

 ![kroki2](https://europe1.discourse-cdn.com/n8n/original/3X/9/5/95ca68ffb90fa34781ecaa50c5a9f9801b4dc6ba.png)

 ![kroki3](https://europe1.discourse-cdn.com/n8n/original/3X/2/9/295a54a69f4d383249659eeb3e70677bdfbe8fed.png)

After you can download your image

Hope this will help
