Skip to content
RiakEcto3 is an Elixir Ecto 3 Adapter for the Riak KV database (For Riak KV v 2.0 and upward).
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
config Proper doctests. Raw SOLR queries! Mar 24, 2019
lib Bump Solr timeout Apr 10, 2019
test Remove unused file Apr 6, 2019
.formatter.exs initial commit Mar 13, 2019
.gitignore initial commit Mar 13, 2019
.travis.yml Task to create search index on Travis Apr 10, 2019
LICENSE Create LICENSE Apr 6, 2019
README.md Update deps & README Apr 6, 2019
mix.exs Task to create search index on Travis Apr 10, 2019
mix.lock

README.md

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.
You can’t perform that action at this time.