justone / brisk

Freeze and thaw with Nippy at the command line
Eclipse Public License 2.0
34 stars 4 forks source link

brisk

Freeze and thaw with Nippy at the command line.

Install

Download the latest from the releases page.

Usage

Freeze data:

brisk --freeze -i data.edn -o data.nippy

Thaw data:

brisk --thaw -i data.nippy -o data.edn

If input or output is not specified, stdin or stdout will be used:

cat data.edn | brisk -f | brisk -t > data2.edn

Encryption

Brisk supports reading and writing encrypted Nippy data. See these docs for details about the difference between cached and salted passwords.

Freeze and thaw data (encrypted):

brisk --freeze --salted-password supersecret -i data.edn -o data.nippy
brisk --thaw --salted-password supersecret -i data.nippy -o data.edn

See brisk --help for more options, including passing the password with environment variables.

Babashka pod support

There are four functions exposed via the pod interface:

Any of the above can take an additional argument with options. This can be used to encrypt the frozen data.

Example:

#!/usr/bin/env bb

(require '[babashka.pods :as pods])
(pods/load-pod "brisk")
(require '[pod.brisk :as brisk])

(brisk/freeze-to-file "pod.nippy" {:han :solo})
(prn (brisk/thaw-from-file "pod.nippy"))

(brisk/freeze-to-file "pod.encrypted.nippy" {:han :solo} {:password [:cached "my-password"]})
(prn (brisk/thaw-from-file "pod.encrypted.nippy" {:password [:cached "my-password"]}))

Development

Not quite ready yet. This depends on a soon-to-be-released library.

Things that don't work

License

Copyright © 2020-2022 Nate Jones

Distributed under the EPL License. See LICENSE.