Skip to content

Latest commit

 

History

History
115 lines (69 loc) · 4.36 KB

CHANGELOG.md

File metadata and controls

115 lines (69 loc) · 4.36 KB

Change Log

Documenting changes between versions beginning from v0.3.0

v0.10.3

  • safir env now lists all existing environments and indicates the currently loaded one

v0.10.2

  • Reduced binary size - no other changes

v0.10.1

  • Added new command to display the currently loaded environment

v0.10.0

  • SQLite DB support

    • Safir now supports using either a JSON file as storage or an SQLite database
    • Activate this by running safir mode database or safir mode file
  • Environments

    • Safir now supports storing Key-Value pairs in specific environments
    • Calling safir use [environment-name] will activate the specific environment
    • New environments are created empty and stored KV pairs will remain in this environment
    • A default environment called default is used initially
    • Old stores from previous versions will be ported to this new format automatically

v0.9.0

THIS IS A BREAKING CHANGE

The entire safir project has been overhauled and brought back to it's original (and simple) purpose: display Key-value pairs.

When working on the whole project, it became clear to me that it was growing way out of control. Initially it was to be an in-memory version (similar to Redis) but an on-disk storage solution was developed first. The in-memory version spawned a whole load of side-projects (rubin for one) but in doing so, it became an over-engineered beast.

At it's heart, safir was simply meant to be a small program to store key-value pairs and retrieve them later - that's it! So when I rewrote it in Go for fun, I realised that it was far too complex and could just be a simple command-line tool with simple commands.

So here we are, it's back to it's original "mindset" and is now far simpler, just storing KV pairs on disk. No additional libraries, no in-memory versions; just a simple KV store.

The other versions are still available but are no longer maintained and this will be the "final" form going forward.

Sorry for any inconvenience and hope you enjoy the more simpler version!

  • Overhauled project to be simpler with no crazy, custom-built backend solutions
  • No pretty output, just displays the KV in the format [key]="[value]"
  • No configs, just a JSON file stored at $HOME/.safirstore/safirstore.json
  • All previous commands still work as they did before (minus the additional ones for in-memory storage)

v0.8.0

Headless mode!

You can now run safir in "headless" mode which removes all the fancy formatting for output

This will allow you to evaluate safir output directly in the terminal.

This also persist as a config setting saved to ~/.safirstore/safir.cfg

v0.7.1

Changes to the internal code structure, no changes to operation

v0.7.0

Something happened here but not major...

v0.6.0

Removed the Safir Memcache and moved it to its own project.

Addition of the Memcache functionality was making everything a bit messy to best to separate them both. They still operate the same, just different projects for each.

Any changes here wil lbe made in the Memcache version also.

  • Removal of Memcache
  • Technically a reversion but meh

v0.5.0

Added the ability to operate Safir as a Memcache server (storing contents in-memory instead of on disk). Requires the Rubin CLI to be installed.

The Memcache service operates using TCP sockets to communicate with the Rubin server to access and update storage. It operates on localhost or 127.0.0.1 and on port 9876.

It works in the same fashion as Safir and does not update the store on disk when activated.

Initialisation and cleanup is handles with the start and stop commands.

  • New memcache option available for using Safir as an in-memory store
  • Minor edits and bugfixes

v0.4.0

BREAKING CHANGE: A newer version of Rubin is now used which is incompatible with older versions of Safir. Attempting to use Safir with older stores will now result in a panic. Save your older store somewhere and manually remove the old .safirstore directory. This should allow continued usage.

  • Updated verison of Rubin to newer version.

v0.3.0

No breaking changes, just an update of the backend used for file creation and maintenance. Due to this allowing more extended work going forward, bumped up to v0.3.0

  • Changed backend file handling to use the Rubin crates instead of a custom solution