mirror of https://github.com/poanetwork/rox.git
Release 1.0.0
This commit is contained in:
parent
f8dbe6a0db
commit
4d56cb9ad7
|
@ -0,0 +1,14 @@
|
|||
|
||||
1.0.0 / 2017-03-21
|
||||
==================
|
||||
|
||||
Major rewrite switching to Rustler based NIFs.
|
||||
|
||||
Changes include:
|
||||
|
||||
- Support for column families
|
||||
- Implementation of `Enumerable` and `Collectable` for both `ColumnFamily.t` and
|
||||
`DB.t`
|
||||
- Drop support for `stream_keys/1`. Use `stream/1` with a map instead.
|
||||
- Support for streaming from arbitrary locations (see `stream/1` docs).
|
||||
- Support for deletion
|
|
@ -0,0 +1,21 @@
|
|||
Copyright 2016 Urbint
|
||||
|
||||
Licensed under the MIT License
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
57
README.md
57
README.md
|
@ -1,16 +1,59 @@
|
|||
# Rox
|
||||
|
||||
Elixir wrapper around
|
||||
[leo-project/erocksdb](https://github.com/leo-project/erocksdb) providing
|
||||
RocksDB as NIFs to Elixir
|
||||
Rustler (Rust) powered erlang NIFs for RocksDB
|
||||
|
||||
## Installation
|
||||
|
||||
Slow down there cow-boy. This library is still a WIP.
|
||||
1. Add `rox` to your list of dependencies in `mix.exs`.
|
||||
|
||||
```ex
|
||||
def deps do
|
||||
[
|
||||
{:rox, "~> 1.0"},
|
||||
]
|
||||
end
|
||||
```
|
||||
|
||||
2. If using Elixir < 1.4, ensure rox is started before your application:
|
||||
```ex
|
||||
def application do
|
||||
[applications: [:rox]]
|
||||
end
|
||||
```
|
||||
|
||||
|
||||
### Dependencies
|
||||
|
||||
Rox requires that Rust be available at compile time.
|
||||
|
||||
## Features
|
||||
|
||||
* String friendly wrapping around erlang char lists
|
||||
* Support for column families.
|
||||
* Auto encoding of non-binary types (tuples, maps, lists, etc) via
|
||||
`:erlang.term_to_binary/1`. (Use `decode: true` on `get` or `stream`)
|
||||
* Exposure of Streams of data via `stream_keys/2` and `stream/2`
|
||||
`:erlang.term_to_binary/1`.
|
||||
* Good Elixir citizen with `Enumerable` and `Collectable` being implemented for both
|
||||
`ColumnFamily.t` and `DB.t` structs.
|
||||
|
||||
## License
|
||||
|
||||
Copyright 2016 Urbint
|
||||
|
||||
Licensed under the MIT License
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
20
mix.exs
20
mix.exs
|
@ -3,12 +3,14 @@ defmodule Rox.Mixfile do
|
|||
|
||||
def project do
|
||||
[app: :rox,
|
||||
version: "0.1.0",
|
||||
version: "1.0.0",
|
||||
elixir: "~> 1.3",
|
||||
build_embedded: Mix.env == :prod,
|
||||
start_permanent: Mix.env == :prod,
|
||||
compilers: [:rustler] ++ Mix.compilers(),
|
||||
rustler_crates: rustler_crates(),
|
||||
description: description(),
|
||||
package: package(),
|
||||
deps: deps()]
|
||||
end
|
||||
|
||||
|
@ -39,4 +41,20 @@ defmodule Rox.Mixfile do
|
|||
rox_nif: [path: "native/rox_nif", cargo: :system, default_features: false, features: [], mode: :release],
|
||||
]
|
||||
end
|
||||
|
||||
defp description, do:
|
||||
"""
|
||||
Rust powered bindings to Facebook's RocksDB
|
||||
|
||||
"""
|
||||
|
||||
defp package do
|
||||
[
|
||||
name: :rox,
|
||||
files: ["lib", "native", "mix.exs", "README*", "History.md", "LICENSE"],
|
||||
maintainers: ["Ryan Schmukler"],
|
||||
licenses: ["MIT"],
|
||||
links: %{"GitHub" => "https://github.com/urbint/rox"}
|
||||
]
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Reference in New Issue