ProductPromotion
Logo

Elixir

made by https://0x3d.site

GitHub - christhekeele/mnemonix: A unified interface to Elixir and Erlang key/value stores.
A unified interface to Elixir and Erlang key/value stores. - christhekeele/mnemonix
Visit Site

GitHub - christhekeele/mnemonix: A unified interface to Elixir and Erlang key/value stores.

GitHub - christhekeele/mnemonix: A unified interface to Elixir and Erlang key/value stores.

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

:thumbsup: 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.

Articles
to learn more about the elixir concepts.

Resources
which are currently available to browse on.

mail [email protected] to add your project or resources here 🔥.

FAQ's
to know more about the topic.

mail [email protected] to add your project or resources here 🔥.

Queries
or most google FAQ's about Elixir.

mail [email protected] to add more queries here 🔍.

More Sites
to check out once you're finished browsing here.

0x3d
https://www.0x3d.site/
0x3d is designed for aggregating information.
NodeJS
https://nodejs.0x3d.site/
NodeJS Online Directory
Cross Platform
https://cross-platform.0x3d.site/
Cross Platform Online Directory
Open Source
https://open-source.0x3d.site/
Open Source Online Directory
Analytics
https://analytics.0x3d.site/
Analytics Online Directory
JavaScript
https://javascript.0x3d.site/
JavaScript Online Directory
GoLang
https://golang.0x3d.site/
GoLang Online Directory
Python
https://python.0x3d.site/
Python Online Directory
Swift
https://swift.0x3d.site/
Swift Online Directory
Rust
https://rust.0x3d.site/
Rust Online Directory
Scala
https://scala.0x3d.site/
Scala Online Directory
Ruby
https://ruby.0x3d.site/
Ruby Online Directory
Clojure
https://clojure.0x3d.site/
Clojure Online Directory
Elixir
https://elixir.0x3d.site/
Elixir Online Directory
Elm
https://elm.0x3d.site/
Elm Online Directory
Lua
https://lua.0x3d.site/
Lua Online Directory
C Programming
https://c-programming.0x3d.site/
C Programming Online Directory
C++ Programming
https://cpp-programming.0x3d.site/
C++ Programming Online Directory
R Programming
https://r-programming.0x3d.site/
R Programming Online Directory
Perl
https://perl.0x3d.site/
Perl Online Directory
Java
https://java.0x3d.site/
Java Online Directory
Kotlin
https://kotlin.0x3d.site/
Kotlin Online Directory
PHP
https://php.0x3d.site/
PHP Online Directory
React JS
https://react.0x3d.site/
React JS Online Directory
Angular
https://angular.0x3d.site/
Angular JS Online Directory