Compare commits
117 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 4d5ca19b47 | |||
| a0e70636a1 | |||
| 13e139e023 | |||
| 1f7d03e67a | |||
| 0b1f662e99 | |||
| e5f36b0f66 | |||
| 0eccb12744 | |||
| f2d3240153 | |||
| 9fb4302000 | |||
| e3f94f1eba | |||
| 4e13d8dffd | |||
| 20e5efa711 | |||
| 6378740051 | |||
| b8ce7a667b | |||
| 281ca18d90 | |||
| 1725de6ace | |||
| 0ad7c03db0 | |||
| 1cdd0d113b | |||
| a0fae43690 | |||
| 04ac766125 | |||
| 9ac26467c0 | |||
| cbfc038839 | |||
| 7ae6462da0 | |||
| 09a3e5b90f | |||
| 1cddd17017 | |||
| 8fdc3a0428 | |||
| 18f10fc1b4 | |||
| 18331ae007 | |||
| f08242e93c | |||
| 23965230e2 | |||
| e43b261752 | |||
| f9b4cb71a5 | |||
| 96c05641bd | |||
| 2c5d1946ec | |||
| a6cbc5a9ed | |||
| 6008ae44a2 | |||
| 99096b2360 | |||
| 0e92459779 | |||
| a13eaaf523 | |||
| dca8d277d3 | |||
| 15c739c0b9 | |||
| fc2da972ef | |||
| e45eea7111 | |||
| 1e62d79c07 | |||
| c74c5ae5c0 | |||
| b0092c4a6e | |||
| 5ce6368c4a | |||
| 3e7e54da4b | |||
| 9f80d687b2 | |||
| 96411e877f | |||
| ac7e078c02 | |||
| e13314f5dc | |||
| b50c3e738a | |||
| 54ad6015b7 | |||
| 40e84ac230 | |||
| 767eaa0a47 | |||
| bb594e768c | |||
| 516bd99c4d | |||
| 571bfcf4b6 | |||
| 26f7a11d80 | |||
| 6fb8d1ba0c | |||
| 21588021d3 | |||
| 7441e0c15b | |||
| 142f3f6bf4 | |||
| 19ddb1c956 | |||
| 97467eae4d | |||
| 17c37b6568 | |||
| 57237ef2e8 | |||
| 164f5a071d | |||
| ac46b16d0e | |||
| b9d114a2d8 | |||
| b368457247 | |||
| fb940d5f60 | |||
| 6d1e671e44 | |||
| b5149c4efa | |||
| f0f642b6b0 | |||
| 7c62abb352 | |||
| 4f1c48b55d | |||
| 37f9307db1 | |||
| 14e7ebb59c | |||
| 14510545d4 | |||
| 906cff2e57 | |||
| bf28495b1f | |||
| 98b78ab1e6 | |||
| 4394c8a50a | |||
| 9fb5bdad78 | |||
| d2ec12798e | |||
| 5270dd00bc | |||
| 35f28fa5ed | |||
| 5ea969e10c | |||
| d0becd0c3c | |||
| 1c81444645 | |||
| d7c3bfd1f5 | |||
| 0f1cc014d7 | |||
| 6ac8c3e67b | |||
| 546681a0ef | |||
| 679d1140cc | |||
| 60d71104e8 | |||
| 8d8374be24 | |||
| 95a1bfeea5 | |||
| 8597f270f6 | |||
| d32ab82d73 | |||
| b6d1cafe54 | |||
| 3911d7d66c | |||
| be594cb1a5 | |||
| 8a93f163c4 | |||
| e82d0a5dd2 | |||
| 4b3fb783c4 | |||
| e8030a9579 | |||
| a94a330345 | |||
| 8ce03cbed6 | |||
| b76fad9512 | |||
| a9158c3a0c | |||
| dc31787526 | |||
| ff7484079e | |||
| 6e1f9ca1e1 | |||
| ac56f5e6c8 |
11
.gitignore
vendored
11
.gitignore
vendored
@@ -1,8 +1,5 @@
|
||||
testdata/
|
||||
liblcl-*.zip
|
||||
liblcl.so
|
||||
liblcl.dll
|
||||
yvbolt
|
||||
yvbolt.exe
|
||||
yvbolt.linux64.tar.xz
|
||||
yvbolt.win64.zip
|
||||
qbolt
|
||||
qbolt.exe
|
||||
qbolt.linux64.tar.xz
|
||||
qbolt.win64.zip
|
||||
190
CHANGELOG.md
Normal file
190
CHANGELOG.md
Normal file
@@ -0,0 +1,190 @@
|
||||
# Changelog
|
||||
|
||||
2025-12-20 v2.0.0
|
||||
|
||||
- Merge yvbolt and QBolt together
|
||||
- App: Show application version in main window titlebar
|
||||
|
||||
2025-12-20 v0.11.0 (yvbolt)
|
||||
|
||||
- Badger: Change encryption configuration options (**BREAKING**)
|
||||
- SSH Agent: Initial support, including lock/unlock
|
||||
- Badger, SQLite: Fix "all files" spec when choosing an export file path
|
||||
- Bolt: Support import/export as zip archive
|
||||
- Support SSH agents when using SSH tunnels (e.g. for Redis or Mongo)
|
||||
|
||||
2025-12-17 v0.10.1 (yvbolt)
|
||||
|
||||
- Fix mixed Qt 5 / Qt 6 syntax
|
||||
- Build release binaries with Go1.26
|
||||
- [⬇️ Download here](https://git.ivysaur.me/code.ivysaur.me/yvbolt/releases/tag/v0.10.1)
|
||||
|
||||
2025-12-16 v0.10.0 (yvbolt)
|
||||
|
||||
- MongoDB: Initial support, including SSH tunnel, managing collections, traversing BSON documents, and querying
|
||||
- LotusDB: Initial support, including editing
|
||||
- Bitcask: Initial support, including editing and backup
|
||||
- RoseDB: Initial support, including editing
|
||||
- Badger: Fix k/v column display, support editing
|
||||
- LMDB: Support editing, add warning for destructive actions
|
||||
- LevelDB: Support editing
|
||||
- Pebble: Support editing
|
||||
- Starskey: Fix k/v column display, support editing
|
||||
- Redis: Bump driver version v9.16.0 -> v9.17.2
|
||||
- Bolt: Add warning for destructive actions
|
||||
- Connection manager: When saving, use the database's preferred name
|
||||
- App: Add hex viewer for binary data if it is not valid UTF-8
|
||||
- App: Use virtualized table renderer
|
||||
- App: Use multiple plug-in typed column stores in table backend
|
||||
- App: Fix graphical flicker when editing connections on Windows
|
||||
- App: Set up icon and exe properties on Windows
|
||||
- App: Embed version number in release builds
|
||||
- App: Show all driver versions as a virtual data table
|
||||
- App: Show unsaved-changes warning also when changing database
|
||||
- App: Fix rich text formatting appearing when pasting into the query window
|
||||
|
||||
2025-12-02 v0.9.0 (yvbolt)
|
||||
|
||||
- LMDB: Initial support, including multi-database mode, data editing, and managing child databases
|
||||
- Starskey: Initial support
|
||||
- Freedesktop.org Secret Service: Initial support, including unlocking collections and creating child collections
|
||||
- App: Use global toolbar style
|
||||
- App: Add connection manager, encrypting credentials with AEAD AES256-GCM using OS keychain
|
||||
- App: Offer to save valid quick-connection to the connection manager
|
||||
- App: Add 'About Qt' menu option
|
||||
- App: Fixed file extension filter for database files with no extension
|
||||
- App: Fixed background colour for Properties area on different OSes
|
||||
- App: Fixed libpng warnings about greyscale image data for embedded logo images
|
||||
- App: Fixed issue with non-UTF8 child database names
|
||||
- Debconf: Improve navigation speed by splitting applications into virtual tables
|
||||
- SSH: Redesign options to pick only one of the available auth methods
|
||||
- Fixed running release binary on Debian 12
|
||||
- [⬇️ Download here](https://git.ivysaur.me/code.ivysaur.me/yvbolt/releases/tag/v0.9.0)
|
||||
|
||||
2025-11-23 v0.8.0 (yvbolt)
|
||||
|
||||
- Port from [liblcl](https://github.com/ying32/liblcl) to [MIQT Qt 6](https://github.com/mappu/miqt)
|
||||
- Badger: Upgrade v4.2.0 -> v4.8.0
|
||||
- Pebble: Upgrade v1.0.0 -> v1.1.5
|
||||
- SQLite: Upgrade v1.14.22 -> v1.14.32
|
||||
- Redis: Upgrade v9.5.3 -> v9.16.0
|
||||
- Bolt: Upgrade v1.4.0-alpha.1 -> v1.4.3
|
||||
- Bolt: Fix child buckets appearing in data area
|
||||
- Badger, Pebble, Debconf: Remove redundant "Data" navigation layer
|
||||
- Badger: Support encrypted databases
|
||||
- Badger: Support readonly databases
|
||||
- Badger: Add context-menu actions for backup, restore, and compact
|
||||
- Pebble: Support readonly databases
|
||||
- LevelDB: Add LevelDB database integration
|
||||
- Redis: Support SSH tunnel
|
||||
- SQLite: Allow editing the primary key column
|
||||
- App: New style connection dialog
|
||||
- App: Updated keyboard shortcuts (Ctrl+O to open new connection, F5 to refresh, F9 to execute query)
|
||||
- App: Add confirmation when refreshing the data table if there are uncommitted changes
|
||||
- [⬇️ Download here](https://git.ivysaur.me/code.ivysaur.me/yvbolt/releases/tag/v0.8.0)
|
||||
|
||||
2025-05-04 1.1.0 (qbolt)
|
||||
|
||||
- New feature to import/export database as zip archive
|
||||
- Upgrade to Qt 6
|
||||
- Add keyboard shortcuts for refresh
|
||||
- Improve High DPI support
|
||||
- Rebuild artefacts with miqt v0.10.0, etcd-io/bbolt v1.4.0, go 1.23, Qt 6.8 (win64)
|
||||
- [⬇ Download here](https://git.ivysaur.me/code.ivysaur.me/qbolt/releases/tag/v1.1.0)
|
||||
|
||||
2024-10-05 1.0.3 (qbolt)
|
||||
|
||||
- Port from hybrid Go/C++ to now using [MIQT](https://github.com/mappu/miqt)
|
||||
- Switch Windows build to win64
|
||||
- Rebuild artefacts with miqt v0.5.0, etcd-io/bbolt v1.3.11, go 1.19 (deb12), go 1.23 (win64)
|
||||
- [⬇ Download here](https://git.ivysaur.me/code.ivysaur.me/qbolt/releases/tag/v1.0.3)
|
||||
|
||||
2024-07-18 v0.7.0 (yvbolt)
|
||||
|
||||
- SQLite, Bolt: Initial support for editing data (insert, per-cell update, delete)
|
||||
- SQLite: Add context menu actions for compact (vacuum), export, and drop table
|
||||
- App: New grid widget
|
||||
- App: Add refresh button
|
||||
- App: Bigger window size, use icons for toolbars, better UI colours for Windows
|
||||
- App: Prevent submitting blank queries to database
|
||||
- Refactor database interface and error handling
|
||||
- [⬇️ Download here](https://git.ivysaur.me/code.ivysaur.me/yvbolt/releases/tag/v0.7.0)
|
||||
|
||||
2024-06-30 v0.6.0 (yvbolt)
|
||||
|
||||
- Debconf: Add as supported database
|
||||
- SQLite: Support table names containing special characters
|
||||
- SQLite: Improvements for experimental command-line driver
|
||||
- Redis: Improve connection dialog window position
|
||||
- App: Cosmetic fixes for frame borders, help dialog, and Windows fonts+colours
|
||||
- Build: Change compression parameters for release builds
|
||||
- Build: Compile CGO with -O2 for release builds
|
||||
- [⬇️ Download here](https://git.ivysaur.me/code.ivysaur.me/yvbolt/releases/tag/v0.6.0)
|
||||
|
||||
2024-06-29 v0.5.0 (yvbolt)
|
||||
|
||||
- Pebble: Add as supported database
|
||||
- Bolt: Support opening as readonly
|
||||
- Bolt: Support creating new databases
|
||||
- Bolt: Support adding/removing recursive child buckets
|
||||
- SQLite: Support custom CLI driver that parses `/usr/bin/sqlite3 -json` output (experimental)
|
||||
- Redis: Improve query parser to support quoted strings
|
||||
- App: Support refreshing elements in nav tree
|
||||
- App: Help menu option to show driver versions
|
||||
- App: Add image icons for refresh and close context menu actions
|
||||
- Build: Add makefile for cross-compiling release binaries
|
||||
- [⬇️ Download here](https://git.ivysaur.me/code.ivysaur.me/yvbolt/releases/tag/v0.5.0)
|
||||
|
||||
2024-06-23 v0.4.0 (yvbolt)
|
||||
|
||||
- Redis: Add as supported database
|
||||
- Badger: Allow creating in-memory databases
|
||||
- App: Allow selecting partial query text to execute
|
||||
- App: Allow closing database connections from context menu
|
||||
- App: Allow scrolling large content on Properties pane
|
||||
- App: Preload recursive navigation
|
||||
- App: Automatically switch to selected database when new connection is created
|
||||
- App: Add help website link
|
||||
- App: Add database logo images
|
||||
|
||||
2024-06-25 v0.3.0 (yvbolt)
|
||||
|
||||
- Badger: Add BadgerDB v4 as supported database
|
||||
- SQLite: Add support for CGo-free SQLite driver under cross-compilation
|
||||
- Bolt: Update Bolt to v1.4.0-alpha.1
|
||||
- App: Add support for running custom queries
|
||||
- App: Add status bar showing currently selected DB
|
||||
- App: Fix missing icons in nav when selecting items
|
||||
- App: Fix extra quotemarks when browsing string content of database
|
||||
|
||||
2024-06-08 v0.2.0 (yvbolt)
|
||||
|
||||
- SQLite: Add SQLite support (now requires CGo)
|
||||
- App: Add images for menu and navigation items
|
||||
|
||||
2024-06-03 v0.1.0 (yvbolt)
|
||||
|
||||
- Initial public release
|
||||
|
||||
2020-04-12 1.0.2 (qbolt)
|
||||
|
||||
- Rebuild artefacts with etcd-io/bbolt v1.3.5, go 1.15, Qt 5.15, and new GCC versions
|
||||
- Switch from hg to Git
|
||||
- Use Go modules
|
||||
- Add support for building Windows binary in Docker
|
||||
- [⬇ Download here](https://git.ivysaur.me/code.ivysaur.me/qbolt/releases/tag/v1.0.2)
|
||||
|
||||
2017-06-19 1.0.1 (qbolt)
|
||||
|
||||
- Feature: Option to open database as read-only
|
||||
- Fix an issue with support for bucket names and keys not surviving UTF-8 roundtrips (now binary-clean)
|
||||
- Fix an issue with crashing when deleting a bucket other than the selected one
|
||||
- Fix a cosmetic issue with application icon on Windows
|
||||
- [⬇ Download here](https://git.ivysaur.me/code.ivysaur.me/qbolt/releases/tag/v1.0.1)
|
||||
|
||||
2017-05-21 1.0.0 (qbolt)
|
||||
|
||||
- Initial public release
|
||||
- The project consists of two parts; a C binding (CGo) for the embeddable Bolt database engine, and a graphical interface built in C++/Qt that links to it.
|
||||
- [⬇ Download here](https://git.ivysaur.me/code.ivysaur.me/qbolt/releases/tag/v1.0.0)
|
||||
|
||||
5
LICENSE
5
LICENSE
@@ -1,7 +1,8 @@
|
||||
ISC License
|
||||
|
||||
Copyright 2024 mappy
|
||||
Copyright 2024 The yvbolt Author(s)
|
||||
Copyright 2025 mappy
|
||||
Copyright 2025 The QBolt Author(s)
|
||||
Copyright 2025 The yvbolt Author(s)
|
||||
|
||||
Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.
|
||||
|
||||
|
||||
30
Makefile
30
Makefile
@@ -25,39 +25,39 @@ optimize-images:
|
||||
optipng -quiet -o5 assets/*.png
|
||||
make generate
|
||||
|
||||
yvbolt: $(SOURCES)
|
||||
qbolt: $(SOURCES)
|
||||
# Target a debian-12 baseline build
|
||||
sed -i -re 's/".+"/"$(GIT_REV)"/g' version.go
|
||||
$(MIQT_DOCKER) linux64-go1.26-qt6.4-dynamic -minify-build
|
||||
git checkout -- version.go
|
||||
chmod 755 yvbolt
|
||||
upx --lzma yvbolt
|
||||
chmod 755 qbolt
|
||||
upx --lzma qbolt
|
||||
|
||||
yvbolt.exe: $(SOURCES)
|
||||
qbolt.exe: $(SOURCES)
|
||||
sed -i -re 's/".+"/"$(GIT_REV)"/g' version.go
|
||||
$(MIQT_DOCKER) win64-cross-go1.26-qt6.5-static -windows-build --tags=windowsqtstatic
|
||||
git checkout -- version.go
|
||||
$(GO_WINRES) patch --in winres.json --no-backup --product-version git-tag --file-version git-tag yvbolt.exe
|
||||
upx --lzma yvbolt.exe
|
||||
$(GO_WINRES) patch --in winres.json --no-backup --product-version git-tag --file-version git-tag qbolt.exe
|
||||
upx --lzma qbolt.exe
|
||||
|
||||
yvbolt.apk: $(SOURCES)
|
||||
qbolt.apk: $(SOURCES)
|
||||
$(MIQT_DOCKER) android-armv8a-go1.23-qt6.6-dynamic -android-build
|
||||
|
||||
yvbolt.linux64.tar.xz: yvbolt
|
||||
rm -f yvbolt.linux64.tar.xz
|
||||
XZ_OPT='-T0 -9' tar caf yvbolt.linux64.tar.xz --owner=0 --group=0 yvbolt
|
||||
qbolt.linux64.tar.xz: qbolt
|
||||
rm -f qbolt.linux64.tar.xz
|
||||
XZ_OPT='-T0 -9' tar caf qbolt.linux64.tar.xz --owner=0 --group=0 qbolt
|
||||
|
||||
yvbolt.win64.zip: yvbolt.exe
|
||||
rm -f yvbolt.win64.zip
|
||||
zip -9 yvbolt.win64.zip yvbolt.exe
|
||||
qbolt.win64.zip: qbolt.exe
|
||||
rm -f qbolt.win64.zip
|
||||
zip -9 qbolt.win64.zip qbolt.exe
|
||||
|
||||
.PHONY: dist
|
||||
dist: yvbolt.linux64.tar.xz yvbolt.win64.zip
|
||||
dist: qbolt.linux64.tar.xz qbolt.win64.zip
|
||||
|
||||
.PHONY: clean
|
||||
clean:
|
||||
git checkout -- version.go
|
||||
rm -f yvbolt.exe yvbolt yvbolt.linux64.tar.xz yvbolt.win64.zip
|
||||
rm -f qbolt.exe qbolt qbolt.linux64.tar.xz qbolt.win64.zip
|
||||
|
||||
#####
|
||||
# Test databases in Docker
|
||||
|
||||
173
README.md
173
README.md
@@ -1,4 +1,4 @@
|
||||
# yvbolt
|
||||
# QBolt
|
||||
|
||||
A graphical interface for multiple databases.
|
||||
|
||||
@@ -8,14 +8,14 @@ A graphical interface for multiple databases.
|
||||
- Connect to multiple databases at once
|
||||
- Browse table/bucket content
|
||||
- Use context menu to perform special table/bucket actions
|
||||
- Edit content, and add/delete rows for supported databases
|
||||
- View database/bucket statistics and metadata
|
||||
- Run custom SQL queries
|
||||
- Select text to run partial query
|
||||
- Safe handling for non-UTF8 key and data fields
|
||||
- Hex viewer for binary data
|
||||
- Connection Manager saves connections with AEAD AES256-GCM using OS keychain
|
||||
|
||||
See also [qbolt](https://code.ivysaur.me/qbolt) for more/different functionality.
|
||||
|
||||
## Supported databases
|
||||
|
||||
There are currently 15 supported databases:
|
||||
@@ -47,167 +47,10 @@ The code in this project is licensed under the ISC license (see `LICENSE` file f
|
||||
- This project includes trademarked logo images for each supported database type.
|
||||
- The Windows binary is released under LGPL-3+ owing to the static copy of Qt.
|
||||
|
||||
## Download
|
||||
|
||||
Get the latest version from [the releases page »](https://git.ivysaur.me/code.ivysaur.me/qbolt/releases)
|
||||
|
||||
## Changelog
|
||||
|
||||
2025-12-20 v0.11.0
|
||||
|
||||
- Badger: Change encryption configuration options (**BREAKING**)
|
||||
- SSH Agent: Initial support, including lock/unlock
|
||||
- Badger, SQLite: Fix "all files" spec when choosing an export file path
|
||||
- Bolt: Support import/export as zip archive
|
||||
- Support SSH agents when using SSH tunnels (e.g. for Redis or Mongo)
|
||||
|
||||
2025-12-17 v0.10.1
|
||||
|
||||
- Fix mixed Qt 5 / Qt 6 syntax
|
||||
- Build release binaries with Go1.26
|
||||
|
||||
[⬇️ Download for Windows x86_64](https://git.ivysaur.me/code.ivysaur.me/yvbolt/releases/download/v0.10.1/yvbolt.win64.zip)
|
||||
|
||||
[⬇️ Download for Linux x86_64](https://git.ivysaur.me/code.ivysaur.me/yvbolt/releases/download/v0.10.1/yvbolt.linux64.tar.xz)
|
||||
|
||||
2025-12-16 v0.10.0
|
||||
|
||||
- MongoDB: Initial support, including SSH tunnel, managing collections, traversing BSON documents, and querying
|
||||
- LotusDB: Initial support, including editing
|
||||
- Bitcask: Initial support, including editing and backup
|
||||
- RoseDB: Initial support, including editing
|
||||
- Badger: Fix k/v column display, support editing
|
||||
- LMDB: Support editing, add warning for destructive actions
|
||||
- LevelDB: Support editing
|
||||
- Pebble: Support editing
|
||||
- Starskey: Fix k/v column display, support editing
|
||||
- Redis: Bump driver version v9.16.0 -> v9.17.2
|
||||
- Bolt: Add warning for destructive actions
|
||||
- Connection manager: When saving, use the database's preferred name
|
||||
- App: Add hex viewer for binary data if it is not valid UTF-8
|
||||
- App: Use virtualized table renderer
|
||||
- App: Use multiple plug-in typed column stores in table backend
|
||||
- App: Fix graphical flicker when editing connections on Windows
|
||||
- App: Set up icon and exe properties on Windows
|
||||
- App: Embed version number in release builds
|
||||
- App: Show all driver versions as a virtual data table
|
||||
- App: Show unsaved-changes warning also when changing database
|
||||
- App: Fix rich text formatting appearing when pasting into the query window
|
||||
|
||||
2025-12-02 v0.9.0
|
||||
|
||||
- LMDB: Initial support, including multi-database mode, data editing, and managing child databases
|
||||
- Starskey: Initial support
|
||||
- Freedesktop.org Secret Service: Initial support, including unlocking collections and creating child collections
|
||||
- App: Use global toolbar style
|
||||
- App: Add connection manager, encrypting credentials with AEAD AES256-GCM using OS keychain
|
||||
- App: Offer to save valid quick-connection to the connection manager
|
||||
- App: Add 'About Qt' menu option
|
||||
- App: Fixed file extension filter for database files with no extension
|
||||
- App: Fixed background colour for Properties area on different OSes
|
||||
- App: Fixed libpng warnings about greyscale image data for embedded logo images
|
||||
- App: Fixed issue with non-UTF8 child database names
|
||||
- Debconf: Improve navigation speed by splitting applications into virtual tables
|
||||
- SSH: Redesign options to pick only one of the available auth methods
|
||||
- Fixed running release binary on Debian 12
|
||||
|
||||
[⬇️ Download for Windows x86_64](https://git.ivysaur.me/code.ivysaur.me/yvbolt/releases/download/v0.9.0/yvbolt.win64.zip)
|
||||
|
||||
[⬇️ Download for Linux x86_64](https://git.ivysaur.me/code.ivysaur.me/yvbolt/releases/download/v0.9.0/yvbolt.linux64.tar.xz)
|
||||
|
||||
2025-11-23 v0.8.0
|
||||
|
||||
- Port from [liblcl](https://github.com/ying32/liblcl) to [MIQT Qt 6](https://github.com/mappu/miqt)
|
||||
- Badger: Upgrade v4.2.0 -> v4.8.0
|
||||
- Pebble: Upgrade v1.0.0 -> v1.1.5
|
||||
- SQLite: Upgrade v1.14.22 -> v1.14.32
|
||||
- Redis: Upgrade v9.5.3 -> v9.16.0
|
||||
- Bolt: Upgrade v1.4.0-alpha.1 -> v1.4.3
|
||||
- Bolt: Fix child buckets appearing in data area
|
||||
- Badger, Pebble, Debconf: Remove redundant "Data" navigation layer
|
||||
- Badger: Support encrypted databases
|
||||
- Badger: Support readonly databases
|
||||
- Badger: Add context-menu actions for backup, restore, and compact
|
||||
- Pebble: Support readonly databases
|
||||
- LevelDB: Add LevelDB database integration
|
||||
- Redis: Support SSH tunnel
|
||||
- SQLite: Allow editing the primary key column
|
||||
- App: New style connection dialog
|
||||
- App: Updated keyboard shortcuts (Ctrl+O to open new connection, F5 to refresh, F9 to execute query)
|
||||
- App: Add confirmation when refreshing the data table if there are uncommitted changes
|
||||
|
||||
[⬇️ Download for Windows x86_64](https://git.ivysaur.me/code.ivysaur.me/yvbolt/releases/download/v0.8.0/yvbolt.win64.zip)
|
||||
|
||||
[⬇️ Download for Linux x86_64](https://git.ivysaur.me/code.ivysaur.me/yvbolt/releases/download/v0.8.0/yvbolt.linux64.tar.xz)
|
||||
|
||||
2024-07-18 v0.7.0
|
||||
|
||||
- SQLite, Bolt: Initial support for editing data (insert, per-cell update, delete)
|
||||
- SQLite: Add context menu actions for compact (vacuum), export, and drop table
|
||||
- App: New grid widget
|
||||
- App: Add refresh button
|
||||
- App: Bigger window size, use icons for toolbars, better UI colours for Windows
|
||||
- App: Prevent submitting blank queries to database
|
||||
- Refactor database interface and error handling
|
||||
|
||||
[⬇️ Download for Windows x86_64](https://git.ivysaur.me/code.ivysaur.me/yvbolt/releases/download/v0.7.0/yvbolt.win64.zip)
|
||||
|
||||
[⬇️ Download for Linux x86_64](https://git.ivysaur.me/code.ivysaur.me/yvbolt/releases/download/v0.7.0/yvbolt.linux64.tar.xz)
|
||||
|
||||
2024-06-30 v0.6.0
|
||||
|
||||
- Debconf: Add as supported database
|
||||
- SQLite: Support table names containing special characters
|
||||
- SQLite: Improvements for experimental command-line driver
|
||||
- Redis: Improve connection dialog window position
|
||||
- App: Cosmetic fixes for frame borders, help dialog, and Windows fonts+colours
|
||||
- Build: Change compression parameters for release builds
|
||||
- Build: Compile CGO with -O2 for release builds
|
||||
|
||||
[⬇️ Download for Windows x86_64](https://git.ivysaur.me/code.ivysaur.me/yvbolt/releases/download/v0.6.0/yvbolt.win64.zip)
|
||||
|
||||
[⬇️ Download for Linux x86_64](https://git.ivysaur.me/code.ivysaur.me/yvbolt/releases/download/v0.6.0/yvbolt.linux64.tar.xz)
|
||||
|
||||
2024-06-29 v0.5.0
|
||||
|
||||
- Pebble: Add as supported database
|
||||
- Bolt: Support opening as readonly
|
||||
- Bolt: Support creating new databases
|
||||
- Bolt: Support adding/removing recursive child buckets
|
||||
- SQLite: Support custom CLI driver that parses `/usr/bin/sqlite3 -json` output (experimental)
|
||||
- Redis: Improve query parser to support quoted strings
|
||||
- App: Support refreshing elements in nav tree
|
||||
- App: Help menu option to show driver versions
|
||||
- App: Add image icons for refresh and close context menu actions
|
||||
- Build: Add makefile for cross-compiling release binaries
|
||||
|
||||
[⬇️ Download for Windows x86_64](https://git.ivysaur.me/code.ivysaur.me/yvbolt/releases/download/v0.5.0/yvbolt.win64.zip)
|
||||
|
||||
[⬇️ Download for Linux x86_64](https://git.ivysaur.me/code.ivysaur.me/yvbolt/releases/download/v0.5.0/yvbolt.linux64.tar.xz)
|
||||
|
||||
2024-06-23 v0.4.0
|
||||
|
||||
- Redis: Add as supported database
|
||||
- Badger: Allow creating in-memory databases
|
||||
- App: Allow selecting partial query text to execute
|
||||
- App: Allow closing database connections from context menu
|
||||
- App: Allow scrolling large content on Properties pane
|
||||
- App: Preload recursive navigation
|
||||
- App: Automatically switch to selected database when new connection is created
|
||||
- App: Add help website link
|
||||
- App: Add database logo images
|
||||
|
||||
2024-06-25 v0.3.0
|
||||
|
||||
- Badger: Add BadgerDB v4 as supported database
|
||||
- SQLite: Add support for CGo-free SQLite driver under cross-compilation
|
||||
- Bolt: Update Bolt to v1.4.0-alpha.1
|
||||
- App: Add support for running custom queries
|
||||
- App: Add status bar showing currently selected DB
|
||||
- App: Fix missing icons in nav when selecting items
|
||||
- App: Fix extra quotemarks when browsing string content of database
|
||||
|
||||
2024-06-08 v0.2.0
|
||||
|
||||
- SQLite: Add SQLite support (now requires CGo)
|
||||
- App: Add images for menu and navigation items
|
||||
|
||||
2024-06-03 v0.1.0
|
||||
|
||||
- Initial public release
|
||||
See [the full change history »](https://git.ivysaur.me/code.ivysaur.me/qbolt/src/branch/master/CHANGELOG.md)
|
||||
|
||||
@@ -159,7 +159,7 @@ func (f *App) saveConnectionManagerContents(sc *SavedConfig) error {
|
||||
}
|
||||
|
||||
// Force update the saved version
|
||||
sc.UserAgent = APPNAME + `/` + appVersion // e.g. yvbolt/v0.0.0-devel
|
||||
sc.UserAgent = APPNAME + `/` + appVersion // e.g. QBolt/v0.0.0-devel
|
||||
|
||||
// Marshal
|
||||
|
||||
|
||||
@@ -7,7 +7,7 @@ import (
|
||||
"path/filepath"
|
||||
"runtime"
|
||||
|
||||
"yvbolt/debconf"
|
||||
"qbolt/debconf"
|
||||
|
||||
"github.com/mappu/autoconfig"
|
||||
)
|
||||
|
||||
@@ -5,7 +5,7 @@ import (
|
||||
"fmt"
|
||||
"strconv"
|
||||
|
||||
"yvbolt/lexer"
|
||||
"qbolt/lexer"
|
||||
|
||||
"github.com/mappu/autoconfig"
|
||||
"github.com/redis/go-redis/v9"
|
||||
|
||||
@@ -8,7 +8,7 @@ import (
|
||||
"path/filepath"
|
||||
"strings"
|
||||
|
||||
"yvbolt/sqliteclidriver"
|
||||
"qbolt/sqliteclidriver"
|
||||
|
||||
"github.com/mappu/autoconfig"
|
||||
qt "github.com/mappu/miqt/qt6"
|
||||
|
||||
BIN
doc/screenshot-000.png
Normal file
BIN
doc/screenshot-000.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 170 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 30 KiB |
5
main.go
5
main.go
@@ -13,8 +13,8 @@ import (
|
||||
)
|
||||
|
||||
const (
|
||||
APPNAME = "yvbolt"
|
||||
HOMEPAGE_URL = "https://code.ivysaur.me/yvbolt"
|
||||
APPNAME = "QBolt"
|
||||
HOMEPAGE_URL = "https://code.ivysaur.me/qbolt"
|
||||
)
|
||||
|
||||
type App struct {
|
||||
@@ -37,6 +37,7 @@ func newApp() *App {
|
||||
a.dbs = make(map[int]loadedDatabase, 0)
|
||||
|
||||
a.ui = NewMainWindowUi()
|
||||
a.ui.MainWindow.SetWindowTitle(APPNAME + " " + appVersion)
|
||||
|
||||
// Using stylesheet works better than picking a palette colour across all
|
||||
// different QStyles
|
||||
|
||||
@@ -338,12 +338,13 @@ func NewMainWindowUi() *MainWindowUi {
|
||||
|
||||
// Retranslate reapplies all text translations.
|
||||
func (ui *MainWindowUi) Retranslate() {
|
||||
ui.MainWindow.SetWindowTitle(qt.QCoreApplication_Tr("yvbolt"))
|
||||
ui.MainWindow.SetWindowTitle(qt.QCoreApplication_Tr("QBolt"))
|
||||
ui.actionE_xit.SetText(qt.QMainWindow_Tr("E&xit"))
|
||||
ui.mnuExecute.SetText(qt.QMainWindow_Tr("E&xecute"))
|
||||
ui.mnuExecute.SetShortcut(qt.NewQKeySequence2(qt.QMainWindow_Tr("F9")))
|
||||
ui.mnuDriverVersions.SetText(qt.QMainWindow_Tr("Driver versions..."))
|
||||
ui.mnuHelpAbout.SetText(qt.QMainWindow_Tr("&About yvbolt"))
|
||||
ui.mnuHelpAbout.SetText(qt.QMainWindow_Tr("&About QBolt"))
|
||||
ui.mnuHelpAbout.SetToolTip(qt.QMainWindow_Tr("About QBolt"))
|
||||
ui.mnuHelpAbout.SetShortcut(qt.NewQKeySequence2(qt.QMainWindow_Tr("F1")))
|
||||
ui.actionConnect.SetText(qt.QMainWindow_Tr("Connect..."))
|
||||
ui.actionConnect.SetShortcut(qt.NewQKeySequence2(qt.QMainWindow_Tr("Ctrl+O")))
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>yvbolt</string>
|
||||
<string>QBolt</string>
|
||||
</property>
|
||||
<property name="windowIcon">
|
||||
<iconset resource="embed.qrc">
|
||||
@@ -252,7 +252,10 @@
|
||||
<normaloff>:/assets/help.png</normaloff>:/assets/help.png</iconset>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>&About yvbolt</string>
|
||||
<string>&About QBolt</string>
|
||||
</property>
|
||||
<property name="toolTip">
|
||||
<string>About QBolt</string>
|
||||
</property>
|
||||
<property name="shortcut">
|
||||
<string>F1</string>
|
||||
|
||||
@@ -23,7 +23,7 @@ import (
|
||||
"io"
|
||||
"os/exec"
|
||||
|
||||
"yvbolt/lexer"
|
||||
"qbolt/lexer"
|
||||
|
||||
"github.com/google/uuid"
|
||||
)
|
||||
@@ -136,7 +136,7 @@ func (s *SCStmt) buildQuery(args []driver.Value) ([]byte, error) {
|
||||
|
||||
// Embed query params
|
||||
// WARNING: Not secure against injection? That's not a security boundary
|
||||
// for the purposes of yvbolt, but maybe for other package users
|
||||
// for the purposes of qbolt, but maybe for other package users
|
||||
|
||||
var querybuilder bytes.Buffer
|
||||
|
||||
|
||||
@@ -15,11 +15,11 @@
|
||||
"0409": {
|
||||
"Comments": "",
|
||||
"CompanyName": "code.ivysaur.me",
|
||||
"FileDescription": "yvbolt Database Editor",
|
||||
"FileDescription": "QBolt Database Editor",
|
||||
"FileVersion": "0.0.0.0",
|
||||
"LegalCopyright": "code.ivysaur.me",
|
||||
"LegalTrademarks": "",
|
||||
"ProductName": "yvbolt",
|
||||
"ProductName": "QBolt",
|
||||
"ProductVersion": "0.0.0"
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user