Newer
Older

Bruno Burke
committed
(:require [cognitect.transit :as transit]
[taoensso.nippy :as nippy-compression :as nippy]
[taoensso.nippy.compression :as nippy-compression])
(:import [java.io ByteArrayInputStream ByteArrayOutputStream]))

Bruno Burke
committed
(defn document->transit [document]
(let [out (ByteArrayOutputStream.)
writer (transit/writer out :json)]
(transit/write writer document)
(.toString out)))

Bruno Burke
committed
(defn transit->document [datastring]
(let [in (ByteArrayInputStream. (.getBytes datastring))
reader (transit/reader in :json)]
(transit/read reader)))

Bruno Burke
committed
(defn encode-document [data]
(nippy/freeze data {:compression nippy-compression/lz4-compressor}))
(defn decode-document [data]
(nippy/thaw data))