All Projects → christhekeele → Mnemonix

christhekeele / Mnemonix

Licence: other
A unified interface to Elixir and Erlang key/value stores.

Programming Languages

elixir
2628 projects

Projects that are alternatives of or similar to Mnemonix

Sharedhashfile
Share Hash Tables With Stable Key Hints Stored In Memory Mapped Files Between Arbitrary Processes
Stars: ✭ 380 (+1125.81%)
Mutual labels:  key-value-store
Vue Socket.io Extended
✌️⚡️ Socket.io bindings for Vue.js and Vuex (inspired by Vue-Socket.io)
Stars: ✭ 506 (+1532.26%)
Mutual labels:  adapter
Slimadapter
A slim & clean & typeable Adapter without# VIEWHOLDER
Stars: ✭ 939 (+2929.03%)
Mutual labels:  adapter
Hawk
✔️ Secure, simple key-value storage for Android
Stars: ✭ 3,827 (+12245.16%)
Mutual labels:  key-value-store
Espressif
all espressif stuff will committed here
Stars: ✭ 477 (+1438.71%)
Mutual labels:  adapter
Pogreb
Embedded key-value store for read-heavy workloads written in Go
Stars: ✭ 708 (+2183.87%)
Mutual labels:  key-value-store
Gorm Adapter
Gorm adapter for Casbin
Stars: ✭ 373 (+1103.23%)
Mutual labels:  adapter
Infinispan
Infinispan is an open source data grid platform and highly scalable NoSQL cloud data store.
Stars: ✭ 862 (+2680.65%)
Mutual labels:  key-value-store
Faster
Fast persistent recoverable log and key-value store + cache, in C# and C++.
Stars: ✭ 4,846 (+15532.26%)
Mutual labels:  key-value-store
Redix
a persistent real-time key-value store, with the same redis protocol with powerful features
Stars: ✭ 907 (+2825.81%)
Mutual labels:  key-value-store
Autoinch
优雅的iPhone全尺寸/等比例精准适配工具
Stars: ✭ 395 (+1174.19%)
Mutual labels:  adapter
Mongo Php Adapter
🔗 Adapter to provide ext-mongo interface on top of mongo-php-library
Stars: ✭ 453 (+1361.29%)
Mutual labels:  adapter
Multityperecyclerviewadapter
一个专注于RecyclerView优雅刷新(接管资源和数据源)、高灵活、低耦合、健壮性以及高效性的MVP模式库,支持大多数Adapter
Stars: ✭ 763 (+2361.29%)
Mutual labels:  adapter
Multiitem
一个优雅的实现多类型的RecyclerView类库 支持DataBinding Form表单录入 跨多个RecyclerView拖动
Stars: ✭ 381 (+1129.03%)
Mutual labels:  adapter
Flutter adapter
A plugin that adapts the flutter application to different platforms, allowing your flutter application to flexibly and efficiently adapt to various platforms in the same flutter project, maximizing UI multiplexing, and sharing business logic code across different platforms. Support to select different layout styles in real time according to the screen orientation.
Stars: ✭ 27 (-12.9%)
Mutual labels:  adapter
Adapter
A quick adapter library for RecyclerView, GridView, ListView, ViewPager, Spinner
Stars: ✭ 376 (+1112.9%)
Mutual labels:  adapter
Superadapter
[Deprecated]. 🚀 Adapter(BaseAdapter, RecyclerView.Adapter) wrapper for Android. 一个Adapter同时适用RecyclerView、ListView、GridView等。
Stars: ✭ 638 (+1958.06%)
Mutual labels:  adapter
Candyview
Implement any RecyclerView in just 1 Line. CandyView handles everything for you.
Stars: ✭ 15 (-51.61%)
Mutual labels:  adapter
Thing Store
an app for storing and calculating with arbitrary structures of values.
Stars: ✭ 11 (-64.52%)
Mutual labels:  key-value-store
Bindapter
You will never build an adapter again
Stars: ✭ 19 (-38.71%)
Mutual labels:  adapter

Mnemonix

A unified interface to key/value stores.

Version Downloads License Documentation Dependencies

Synopsis

Mnemonix aims to help you:

  • Get running with key/value stores with minimal ceremony
  • Experiment with different key/value store backends for your application
  • Allow end-users of your library liberty to choose their preferred backend
  • Enable composing access to different key/value stores with different read/write strategies

It encodes the behaviour, lifecycle, and feature set of a key/value store behind a common GenServer interface, normalizes different store APIs to conform to that interface, polyfills stores lacking features, and exposes access to them through a familiar Map API.

Learn more about starting a store and manipulating it with the Mnemonix API in the documentation.

Pronunciation: /nɛˈmɑːnɪks/noo-MAHN-icks

Mnemonic systems are techniques or strategies consciously used to improve memory. They help use information already stored in long-term memory to make memorization an easier task.

Mnemonics, Wikipedia

Status

👍 Continuous Integration Test Coverage
Master Build Status Coverage Status
Development Build Status Coverage Status

Features

Naturally, Mnemonix gives you Map-style functions to manipulate various key/value stores. However, Mnemonix also offers extra features beyond simple Map functions. Stores that don't natively support these features have the capability added through an Elixir polyfill, guaranteeing you can use and switch stores without worrying about what features they support under the hood.

Available features are:

  • Mnemonix.Features.Map - The key/value manipulation you know and love
  • Mnemonix.Features.Bump - Increment/decrement integer values
  • Mnemonix.Features.Expiry - Set entries to remove themselves from the store with a ttl
  • Mnemonix.Features.Enumerable - Iterate over all key/value pairs in supported stores

Installation

Add Mnemonix to your project's dependencies in its mix.exs:

def deps do
  [
    # ...
    {:mnemonix, "~> 0.10.0"},
    # ...
  ]
end

Contributing

Pull requests are welcome and greatly appreciated!

Please submit them against the development branch rather than master––this allows useful changes to be finessed before release. The GitHub UI should do this by default.

Here are some useful commands if you've just forked the project and want to contribute:

  • mix deps.get - Get development dependencies
  • mix test - Run the test suite
  • mix credo list - Run static code analysis for style pointers on Elixir source
  • mix dialyzer - Run static code analysis for type checking on compiled BEAM bytecode
  • mix coveralls.html - Generate test suite coverage report
  • mix docs - Generate documentation pages
  • mix inch - Evaluate quality of documentation
  • mix checks - Run all of the above checks and analyses
  • mix clean - If any of the above stop behaving as expected

For more information on helping the development of Mnemonix, check out the contributing guide.

Notes

  • Not to be confused with the mnemonicode library, Mnemonex.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].