anydb

command module
v0.2.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 17, 2025 License: GPL-3.0 Imports: 7 Imported by: 0

README

A personal key value store

Actions License Go Coverage Go Report Card GitHub release Documentation

[!CAUTION] Version 0.1.3 introduced a regression bug, which caused the encryption feature not to work correctly anymore. If you are using anydb 0.1.3, you are urgently advised to upgrade to 0.2.0

Anydb is a simple to use commandline tool to store anything you'd like, even binary files etc. It is a re-implementation of skate for the following reasons:

  • it's just fun to do
  • anydb uses bbolt instead of badger. bbolt has a stable file format, which doesn't change anymore. The badger file format on the other hand changes very often, which is not good for a tool intended to be used for many years.
  • more features:
    • output table in list mode uses TAB separator
    • better STDIN + pipe support
    • supports JSON output
    • supports more verbose tabular output
    • filtering using regular expressions
    • tagging
    • filtering using tags
    • encryption of entries
    • templates for custom output for maximum flexibility
    • includes a tiny web server, which serves a restful API

And I wrote a very similar tool 24 years ago and wanted to do it again wit go.

anydb can do all the things you can do with skate:

simple demo

However, there are more features than just that!

advanced demo

Installation

There are multiple ways to install anydb:

  • Go to the latest release page, locate the binary for your operating system and platform.

    Download it and put it into some directory within your $PATH variable.

  • The release page also contains a tarball for every supported platform. Unpack it to some temporary directory, extract it and execute the following command inside:

    sudo make install
    
  • You can also install from source. Issue the following commands in your shell:

    git clone https://github.com/TLINDEN/anydb.git
    cd anydb
    make
    sudo make install
    
  • Or, if you have the GO toolkit installed, just install it like this:

    go install github.com/tlinden/anydb@latest
    

If you do not find a binary release for your platform, please don't hesitate to ask me about it, I'll add it.

Using the docker image

A pre-built docker image is available, which you can use to test the app without installing it. To download:

docker pull ghcr.io/tlinden/anydb:latest

To execute anydb inside the image do something like this:

mkdir mydb
docker run -ti  -v mydb:/db -u `id -u $USER` -e HOME=/db ghcr.io/tlinden/anydb:latest set foo bar
docker run -ti  -v mydb:/db -u `id -u $USER` -e HOME=/db ghcr.io/tlinden/anydb:latest list -o wide

Here, we operate in a local directory mydb, which we'll use as HOME inside the docker container. anydb will store its database in mydb/.config/anydb/default.db.

A list of available images is here

Documentation

The documentation is provided as a unix man-page. It will be automatically installed if you install from source. However, you can read the man-page online

Or if you cloned the repository you can read it this way (perl needs to be installed though): perldoc anydb.pod.

If you have the binary installed, you can also read the man page with this command:

anydb man

Getting help

Although I'm happy to hear from anydb users in private email, that's the best way for me to forget to do something.

In order to report a bug, unexpected behavior, feature requests or to submit a patch, please open an issue on github: https://github.com/TLINDEN/anydb/issues.

This software is licensed under the GNU GENERAL PUBLIC LICENSE version 3.

Authors

T.v.Dein

Project homepage

https://github.com/TLINDEN/anydb

Licensed under the GNU GENERAL PUBLIC LICENSE version 3.

Author

T.v.Dein

Documentation

Overview

Copyright © 2024 Thomas von Dein

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see <http://www.gnu.org/licenses/>.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL
JackTT - Gopher 🇻🇳