Skip to content
master
Switch branches/tags
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
lib
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

RiakEcto3

hex.pm version Build Status Inline docs

RiakEcto3 is an Ecto 3 Adapter for the Riak KV database (v 2.0 and upward), which represents structs as Riak CRDT Data Types.

Features

  • Structs are serialized as Riak CRDT Data Types.
  • Repo.get and Repo.insert/update
  • Repo.delete
  • Executing raw Solr queries
  • Finding a key within a range of keys (which relies on Riak's Secondary Indexes feature).
  • Setting up a Riak bucket type ('database')
  • 'Tearing down' a Riak bucket type ('database'): It will only be flushed because Riak does not support the actual dropping of a bucket or bucket type.

Planned Features

  • Support for associations
    • and preloading them.
  • Support for the Counter, Set and Flag CRDT datatypes.
  • (Maybe!) a converter for the Ecto query syntax into the Solr query syntax.

(For now) deliberatly not planned as features

  • Support for the rest of Secondary Indexes, because these are deprecated and custom indexes cannot be created for CRDTs.

Installation

As soon as available in Hex, the package can be installed by adding riak_ecto3 to your list of dependencies in mix.exs:

def deps do
  [
    {:riak_ecto3, "~> 0.5.0"}
  ]
end

Documentation can be found at https://hexdocs.pm/riak_ecto3.

Running Tests

The tests expect Riak to be running in localhost at its default port (8087).

  • Some of the features of RiakEcto3 require that searching is turned on, (the search setting in riak.conf)
  • Some features (The ones that require secondary indexes) require that either the 'leveldb' or 'memory'-backend is used. (The storage_backend setting in riak.conf)
  • Besides this, there are no restrictions when running the tests.

About

RiakEcto3 is an Elixir Ecto 3 Adapter for the Riak KV database (For Riak KV v 2.0 and upward).

Topics

Resources

License

Releases

No releases published

Packages

No packages published

Languages