Skip to content

feat: Publish the Redis plugin for Tabularis#58

Merged
debba merged 3 commits intodebba:mainfrom
gzamboni:gzamboni-publish-redis
Mar 5, 2026
Merged

feat: Publish the Redis plugin for Tabularis#58
debba merged 3 commits intodebba:mainfrom
gzamboni:gzamboni-publish-redis

Conversation

@gzamboni
Copy link
Contributor

@gzamboni gzamboni commented Mar 5, 2026

Description

This PR adds the Redis Driver (redis-tabularis-plugin) to the Tabularis plugin registry.

This plugin enables Tabularis to connect to Redis databases and explore data as if they were relational tables, providing a seamless SQL-like interface over complex Redis data structures.

Key Features

  • Virtual Tables: Explores Redis data structures as relational tables (keys, hashes, lists, sets, zsets).
  • Full CRUD Support: Supports native Tabularis UI operations (inline editing, inserting, deleting) mapping directly to Redis commands.
  • TTL Management: Users can view and modify Key TTLs directly from the data grid.
  • Advanced Querying: Supports a robust internal SQL parser with WHERE (including LIKE and IN), ORDER BY, LIMIT, and OFFSET.
  • Cross-Platform: Pre-compiled binaries via GoReleaser for Linux, macOS, and Windows (amd64 and arm64).

🔍 Sample Queries

The plugin translates standard SQL queries into optimal Redis commands. Here are a few examples of what users can do in the Tabularis SQL Editor:

Key Scanning:

Find all cache keys with a TTL greater than 1 hour
SELECT * FROM keys WHERE key LIKE 'cache:%' AND ttl > 3600 ORDER BY ttl DESC

Hashes:

Query specific user fields
SELECT * FROM hashes WHERE key = 'user:1001' AND field IN ('email', 'status')

Sorted Sets (ZSets):

Get the top 10 players on a leaderboard
SELECT * FROM zsets WHERE key = 'leaderboard' ORDER BY score DESC LIMIT 10

Testing & Validation

  • Fully covered by unit tests and an automated End-to-End Docker test suite testing the JSON-RPC implementation against a real Redis instance.
  • Verified locally in Tabularis v0.9.5 (Linux) — UI writes and queries function flawlessly.

@debba
Copy link
Owner

debba commented Mar 5, 2026

Looks very interesting!

I’ll check carefully in about an hour because I just got out of bed 😀

How has your experience been developing the plugins?
How was the documentation?
How can we improve?

If you’d like, I’d really appreciate some feedback.

You can also reach us on Discord: the link is in the project README!

Thanks again for this great contribution!

@debba
Copy link
Owner

debba commented Mar 5, 2026

@gzamboni

I see there is another request for another Redis plugin in #60 ,

There’s obviously room for both, I imagine they will still have different features and capabilities, and they’re also implemented in two different languages: really awesome, guys!!

I might suggest maybe using the prefix tabularis-redis-plugin and then adding the language, so something like: tabularis-redis-plugin-go.

What do you think?

@gzamboni
Copy link
Contributor Author

gzamboni commented Mar 5, 2026

@gzamboni

I see there is another request for another Redis plugin in #60 ,

There’s obviously room for both, I imagine they will still have different features and capabilities, and they’re also implemented in two different languages: really awesome, guys!!

I might suggest maybe using the prefix tabularis-redis-plugin and then adding the language, so something like: tabularis-redis-plugin-go.

What do you think?

LGTM

@debba
Copy link
Owner

debba commented Mar 5, 2026

Perfect, I will merge it and will be up in next release
Thanks for doing it :)

@debba debba merged commit b89854c into debba:main Mar 5, 2026
@gzamboni
Copy link
Contributor Author

gzamboni commented Mar 5, 2026

@debba

Looks very interesting!

I’ll check carefully in about an hour because I just got out of bed 😀

Buongiorno! 😄

How has your experience been developing the plugins? How was the documentation? How can we improve?

For real, no problems at all. Awesome documentation and your ideia to use JSON RPC over stdin/stout was clever.

If you’d like, I’d really appreciate some feedback.

You can also reach us on Discord: the link is in the project README!

Thanks again for this great contribution!

@debba
Copy link
Owner

debba commented Mar 5, 2026

@gzamboni
Very happy for this feedback :)
Let's consider to contribute on the core, we are growing fast and there are a lot of things to do !

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants