DBCatcher is a lightweight and accessibility‑focused database client, designed to manage multiple database connections through a simple and extensible architecture.
The main goal of the project is to provide a usable alternative to existing database clients, with strong attention to accessibility (screen readers, keyboard navigation) and to experimentation with different data engines.
Currently supported databases are:
- PostgreSQL
- MongoDB
- Apache Hive via Apache Kyuubi (basic support)
- Multiple database connections
- Accessible UI (screen‑reader friendly)
- Modular architecture, easy to extend with new engines
- Basic Hive SQL support through Apache Kyuubi (SQL gateway)
- Playground environment with dockerized DBMS for development and testing
DBCatcher provides basic support for Apache Hive by connecting through Apache Kyuubi.
Kyuubi acts as a SQL gateway on top of Spark / Hive, exposing a JDBC endpoint that DBCatcher can use to:
- Establish a connection
- Execute basic SQL queries
- Browse schemas and tables (where supported by the engine)
⚠️ The current Kyuubi/Hive integration is intentionally minimal and considered experimental.
- Python ≥ 3.8
- Poetry
- Docker & Docker Compose (for the playground, development only)
No local DBMS installation is required to try or develop DBCatcher, thanks to the provided playground.
git clone https://github.com/fabiogiulitti/DBCatcher.git
cd DBCatcher
poetry installPoetry is used for dependency management and virtual environment handling.
poetry run python -m main.mainDBCatcher supports a custom configuration file via the -c parameter:
poetry run python -m main.main -c path/to/config.yamlFor development and testing purposes, DBCatcher includes a dockerized playground with the supported DBMS.
The playground allows you to:
- Run PostgreSQL, MongoDB and Hive/Kyuubi without local installation
- Quickly test new features
- Reproduce issues in a controlled environment
docker compose -f playground/<dbtype>/compose.yml up -dOnce started, you can launch DBCatcher using the dedicated playground configuration file:
poetry run python -m main.main -c playground/config/config.yaml
⚠️ Important: The playground is not included in release artifacts and is intended only for development.
PostgreSQL
postgresql://user:password@localhost:5432/dbname
MongoDB
mongodb://user:password@localhost:27017/dbname
Hive via Kyuubi
jdbc:hive2://localhost:10009/default
Contributions are welcome and encouraged! 🎉
You can contribute by:
- Fixing bugs
- Improving accessibility
- Adding new database backends
- Enhancing Hive/Kyuubi support
- Writing tests and documentation
- Fork the repository
- Create a feature or fix branch
git checkout -b feature/my-feature
- Commit your changes
git commit -m "Add support for ..." - Push the branch and open a Pull Request
- Keep commits small and focused
- Follow the existing code style
- Prefer readability over premature optimization
- For major changes, open an Issue first to discuss the approach
DBCatcher is released under the GPL‑3.0 License.
Thanks to everyone who uses, tests, or contributes to DBCatcher. If you find the project useful, consider giving it a ⭐ on GitHub!