Hey,
Add an optional storage backend so Eggdrop can load/save user & channel state using a database.
Flatfiles stay default. Start with SQLite (embedded, no external service). Later add MariaDB/PostgreSQL. Redis is optional (cache only).
Why:
Reliable saves (safe, all-or-nothing).
Query/backup/audit without parsing flatfiles.
Low risk: wrap current load/save behind a small provider; no TCL command changes.
MVP:
Providers: flatfile (existing, default) + sqlite.
Config switch, one-shot migration from flatfiles, easy rollback via config.
No change to TCL binds/commands for callers.
Details and a Tcl example config are attached in a separate Markdown file.