Provides core functions, but with additional caching. Still subject to internal changes. Use this namespace only if you anticipate to be the only process accessing the store, otherwise you should implement your own caching strategy.
Provides core functions, but with additional caching. Still subject to internal changes. Use this namespace only if you anticipate to be the only process accessing the store, otherwise you should implement your own caching strategy.
Default implementation of the high level protocol given a binary backing implementation as defined in the storage-layout namespace.
Default implementation of the high level protocol given a binary backing implementation as defined in the storage-layout namespace.
One of these protocols must be implemented by each store to provide low level access depending on the low-level storage layout chosen. Stores can support multiple layouts.
One of these protocols must be implemented by each store to provide low level access depending on the low-level storage layout chosen. Stores can support multiple layouts.
Address globally aggregated immutable key-value store(s). Does not support serialization.
Address globally aggregated immutable key-value store(s). Does not support serialization.
Unified multimethod-based store dispatch layer.
This namespace provides a polymorphic interface for connecting to different
konserve backend stores using a :backend key in the configuration map.
Built-in backends:
External backends (register via require):
Example usage:
(require '[konserve.store :as store])
;; Memory store (store/connect-store {:backend :memory :opts {:sync? true}})
;; File store (JVM) (store/connect-store {:backend :file :path "/tmp/konserve" :opts {:sync? true}})
;; After requiring konserve-s3: (store/connect-store {:backend :s3 :bucket "my-bucket" :region "us-east-1"})
Unified multimethod-based store dispatch layer.
This namespace provides a polymorphic interface for connecting to different
konserve backend stores using a `:backend` key in the configuration map.
Built-in backends:
- :memory - In-memory store (all platforms)
- :file - File-based store (JVM only)
- :tiered - Tiered store with frontend cache and backend persistence (all platforms)
External backends (register via require):
- :file - File-based store for Node.js (konserve.node-filestore)
- :indexeddb - Browser IndexedDB (konserve.indexeddb - browser only)
- :s3 - AWS S3 backend (konserve-s3)
- :dynamodb - AWS DynamoDB backend (konserve-dynamodb)
- :redis - Redis backend (konserve-redis)
- :lmdb - LMDB backend (konserve-lmdb)
- :rocksdb - RocksDB backend (konserve-rocksdb)
Example usage:
(require '[konserve.store :as store])
;; Memory store
(store/connect-store {:backend :memory :opts {:sync? true}})
;; File store (JVM)
(store/connect-store {:backend :file :path "/tmp/konserve" :opts {:sync? true}})
;; After requiring konserve-s3:
(store/connect-store {:backend :s3 :bucket "my-bucket" :region "us-east-1"})Tiered store implementation with frontend and backend storage layers.
Tiered store implementation with frontend and backend storage layers.
cljdoc builds & hosts documentation for Clojure/Script libraries
| Ctrl+k | Jump to recent docs |
| ← | Move to previous article |
| → | Move to next article |
| Ctrl+/ | Jump to the search field |