Releases version 0.1.0-rc.1

pull/46/head v0.1.0-rc.1
Tpt 4 years ago
parent 8eac1efe4b
commit eea33f136a
  1. 5
      .gitignore
  2. 8
      CHANGELOG.md
  3. 30
      README.md
  4. 8
      js/Cargo.toml
  5. 9
      js/README.md
  6. 2
      js/package.json
  7. 6
      lib/Cargo.toml
  8. 16
      python/Cargo.toml
  9. 21
      python/README.md
  10. 14
      python/docs/index.rst
  11. 4
      server/Cargo.toml
  12. 4
      testsuite/Cargo.toml
  13. 4
      wikibase/Cargo.toml

5
.gitignore vendored

@ -1,8 +1,9 @@
target/
**/target
**/*.rs.bk
Cargo.lock
.idea
*.iml
js/node_modules
lib/tests/rockdb_bc_data
lib/tests/sled_bc_data
lib/tests/sled_bc_data
venv

@ -0,0 +1,8 @@
## [0.1.0-rc.1] - 2020-08-01
### Added
- `oxigraph` Rust library with SPARQL 1.1 query support and memory, Sled and RocksDB stores.
- `oxigraph_server` standalone SPARQL server.
- `oxigraph_wikibase` standalone SPARQL server loading data from a Wikibase instance.
- `pyoxigraph` Python library based on Oxigraph.
- `oxigraph` NodeJS library based on Oxigraph.

@ -1,23 +1,31 @@
Oxigraph
========
[![Latest Version](https://img.shields.io/crates/v/oxigraph.svg)](https://crates.io/crates/oxigraph)
[![Released API docs](https://docs.rs/oxigraph/badge.svg)](https://docs.rs/oxigraph)
[![npm](https://img.shields.io/npm/v/oxigraph)](https://www.npmjs.com/package/oxigraph)
[![actions status](https://github.com/oxigraph/oxigraph/workflows/build/badge.svg)](https://github.com/oxigraph/oxigraph/actions)
[![Gitter](https://badges.gitter.im/oxigraph/community.svg)](https://gitter.im/oxigraph/community?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge)
Oxigraph is a graph database implementing the [SPARQL](https://www.w3.org/TR/sparql11-overview/) standard.
There is no released version yet.
Its goal is to provide a compliant, safe and fast graph database based on the [RocksDB](https://rocksdb.org/) and [Sled](https://sled.rs/) key-value stores.
It is written in Rust.
It also provides a set of utility functions for reading, writing and processing RDF files.
Oxigraph is in heavy development and SPARQL query evaluation has not been optimized yet.
It is split into multiple parts:
* The `lib` directory contains the database written as a Rust library.
[![Latest Version](https://img.shields.io/crates/v/oxigraph.svg)](https://crates.io/crates/oxigraph)
[![Released API docs](https://docs.rs/oxigraph/badge.svg)](https://docs.rs/oxigraph)
* The `python` directory contains bindings to use Oxigraph in Python. See [its README](https://github.com/oxigraph/oxigraph/blob/master/python/README.md) for the Python bindings documentation.
* The `js` directory contains bindings to use Oxigraph in JavaScript with the help of WebAssembly. See [its README](https://github.com/oxigraph/oxigraph/blob/master/js/README.md) for the JS bindings documentation.
[![npm](https://img.shields.io/npm/v/oxigraph)](https://www.npmjs.com/package/oxigraph)
* The `server` directory contains a stand-alone binary of a web server implementing the [SPARQL 1.1 Protocol](https://www.w3.org/TR/sparql11-protocol/). It uses the [RocksDB](https://rocksdb.org/) key-value store.
[![Latest Version](https://img.shields.io/crates/v/oxigraph_server.svg)](https://crates.io/crates/oxigraph_server)
* The `wikibase` directory contains a stand-alone binary of a web server able to synchronize with a [Wikibase instance](https://wikiba.se/).
[![Latest Version](https://img.shields.io/crates/v/oxigraph_wikibase.svg)](https://crates.io/crates/oxigraph_wikibase)
Oxigraph implements the following specifications:
* [SPARQL 1.1 Query](https://www.w3.org/TR/sparql11-query/).
@ -29,16 +37,19 @@ A preliminary benchmark [is provided](bench/README.md).
## Run the web server
### Build
### Installation
You need to have [a recent stable version of Rust and Cargo installed](https://www.rust-lang.org/tools/install). You also need [clang](https://clang.llvm.org/) to build RocksDB.
If it's done, executing `cargo build --release` in the root directory of this repository should compile the full server after having downloaded its dependencies.
To download, build and install the latest released version run `cargo install oxigraph_server`.
There is no need to clone this git repository.
To compile the server from source, clone this git repository, and execute `cargo build --release` in the `server` directory to compile the full server after having downloaded its dependencies.
It will create a fat binary in `target/release/oxigraph_server`.
### Usage
Run `./oxigraph_server` to start the server. It listen by default on `localhost:7878`.
Run `oxigraph_server` to start the server. It listens by default on `localhost:7878`.
The server provides an HTML UI with a form to execute SPARQL requests.
@ -82,11 +93,14 @@ You could easily build your own Docker image by running `docker build -t oxigrap
## Run the Wikibase server
### Build
### Installation
You need to have [a recent stable version of Rust and Cargo installed](https://www.rust-lang.org/tools/install). You also need [clang](https://clang.llvm.org/) to build RocksDB.
You need to have [a recent stable version of Rust and Cargo installed](https://www.rust-lang.org/tools/install).
To download, build and install the latest released version run `cargo install oxigraph_wikibase`.
There is no need to clone this git repository.
If it's done, executing `cargo build --release` in the root directory of this repository should compile the full server after having downloaded its dependencies.
To compile the server from source, clone this git repository, and execute `cargo build --release` in the `wikibase` directory to compile the full server after having downloaded its dependencies.
It will create a fat binary in `target/release/oxigraph_wikibase`.
### Usage

@ -1,6 +1,6 @@
[package]
name = "oxigraph_js"
version = "0.0.2"
version = "0.1.0-rc.1"
authors = ["Tpt <thomas@pellissier-tanon.fr>"]
license = "MIT/Apache-2.0"
readme = "README.md"
@ -9,13 +9,15 @@ repository = "https://github.com/oxigraph/oxigraph/tree/master/js"
description = "JavaScript bindings of Oxigraph"
edition = "2018"
[lib]
crate-type = ["cdylib"]
name = "oxigraph"
[package.metadata.wasm-pack.profile.release]
wasm-opt = false
[dependencies]
oxigraph = {path = "../lib"}
oxigraph = {version = "0.1.0-rc.1"}
wasm-bindgen = "0.2"
js-sys = "0.3"
console_error_panic_hook = "0.1"

@ -1,8 +1,8 @@
Oxigraph for JavaScript
=======================
[![actions status](https://github.com/oxigraph/oxigraph/workflows/build/badge.svg)](https://github.com/oxigraph/oxigraph/actions)
[![npm](https://img.shields.io/npm/v/oxigraph)](https://www.npmjs.com/package/oxigraph)
[![actions status](https://github.com/oxigraph/oxigraph/workflows/build/badge.svg)](https://github.com/oxigraph/oxigraph/actions)
[![Gitter](https://badges.gitter.im/oxigraph/community.svg)](https://gitter.im/oxigraph/community?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge)
This package provides a JavaScript API on top of Oxigraph compiled with WebAssembly.
@ -163,4 +163,9 @@ The Oxigraph bindings are written in Rust using [the Rust WASM toolkit](https://
The [The Rust Wasm Book](https://rustwasm.github.io/docs/book/) is a great tutorial to get started.
To build the JavaScript bindings, run `wasm-pack build`, to run the tests of the JS bindings written in JS run `npm test`.
To run the tests of the JS bindings written in JS run `npm test`.
To publish a new version on npm run:
```bash
npm run build && npm run release
```

@ -1,6 +1,6 @@
{
"name": "oxigraph_tests",
"description": "Build a tests for Oxigraph JS",
"description": "Oxigraph JS build and tests",
"private": true,
"devDependencies": {
"mocha": "^8.0.1",

@ -1,14 +1,14 @@
[package]
name = "oxigraph"
version = "0.1.0"
version = "0.1.0-rc.1"
authors = ["Tpt <thomas@pellissier-tanon.fr>"]
license = "MIT/Apache-2.0"
readme = "../README.md"
keywords = ["RDF", "N-Triples", "Turtle", "RDF/XML", "SPARQL"]
keywords = ["RDF", "SPARQL", "graph-database", "database"]
categories = ["database-implementations"]
repository = "https://github.com/oxigraph/oxigraph"
description = """
An RDF and SPARQL library in Rust
a SPARQL database and RDF toolkit
"""
edition = "2018"

@ -1,13 +1,13 @@
[package]
name = "pyoxigraph"
version = "0.1.0"
version = "0.1.0-rc.1"
authors = ["Tpt <thomas@pellissier-tanon.fr>"]
license = "MIT/Apache-2.0"
readme = "README.md"
keywords = ["RDF", "N-Triples", "Turtle", "RDF/XML", "SPARQL"]
keywords = ["RDF", "SPARQL", "graph-database", "database"]
repository = "https://github.com/oxigraph/oxigraph/tree/master/python"
description = """
Python bindings of Oxigraph
Python bindings of Oxigraph, a SPARQL database and RDF toolkit
"""
edition = "2018"
@ -17,16 +17,20 @@ name = "pyoxigraph"
doctest = false
[dependencies]
oxigraph = {path = "../lib", features=["sled"]}
pyo3 = {version="0.11", features = ["extension-module"]}
oxigraph = {version = "0.1.0-rc.1", features = ["sled"]}
pyo3 = {version = "0.11", features = ["extension-module"]}
[package.metadata.maturin]
classifier = [
"Development Status :: 2 - Pre-Alpha",
"Development Status :: 3 - Alpha",
"Intended Audience :: Developers",
"License :: OSI Approved :: Apache Software License",
"License :: OSI Approved :: MIT License",
"Programming Language :: Python :: 3 :: Only",
"Programming Language :: Python :: 3.5",
"Programming Language :: Python :: 3.6",
"Programming Language :: Python :: 3.7",
"Programming Language :: Python :: 3.8",
"Programming Language :: Rust",
"Topic :: Database :: Database Engines/Servers"
]

@ -1,10 +1,13 @@
Oxigraph for Python (`pyoxigraph`)
==================================
[![PyPI](https://img.shields.io/pypi/v/pyoxigraph)](https://pypi.org/project/pyoxigraph/)
![PyPI - Implementation](https://img.shields.io/pypi/implementation/pyoxigraph)
![PyPI - Python Version](https://img.shields.io/pypi/pyversions/pyoxigraph)
[![actions status](https://github.com/oxigraph/oxigraph/workflows/build/badge.svg)](https://github.com/oxigraph/oxigraph/actions)
[![Gitter](https://badges.gitter.im/oxigraph/community.svg)](https://gitter.im/oxigraph/community?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge)
This Python package provides a Python API on top of Oxigraph named `pyoxigraph`.
Pyoxigraph is a Python library on top of Oxigraph.
Oxigraph is a graph database implementing the [SPARQL](https://www.w3.org/TR/sparql11-overview/) standard.
@ -20,13 +23,14 @@ The stores are also able to load and dump RDF data serialized in
[N-Quads](https://www.w3.org/TR/n-quads/) and
[RDF/XML](https://www.w3.org/TR/rdf-syntax-grammar/).
## Install
It is distributed on Pypi using the [`pyoxigraph` package](https://pypi.org/project/pyoxigraph/).
Run `pip install pyoxigraph` to install it.
To install the development version of Oxigraph you need first to install the build tool [Maturin](https://github.com/PyO3/maturin).
This could be done using the usual `pip install maturin`.
`maturin build release` allows build a release Oxigraph Python wheel.
This wheel could be installed using `pip install PATH` in the current Python environment where `PATH` is the path to the built Oxigraph wheel.
## Build the development version
To build and install the lastest version of pyoxigraph you need to clone this git repository
and to run `pip install .` in the `python` directory (the one this README is in).
## How to contribute
@ -39,3 +43,8 @@ To install development version of Oxigraph just run `maturin develop`.
The Python bindings tests are written in Python.
To run them use the usual `python -m unittest` in the `tests` directory.
To release a new version of `pyoxigraph` run:
```bash
docker run --rm -v $(pwd):/io konstin2/maturin publish
```

@ -1,6 +1,17 @@
Oxigraph Python (``pyoxigraph`` |release|)
==========================================
.. image:: https://img.shields.io/pypi/v/pyoxigraph
:alt: PyPI
:target: https://pypi.org/project/pyoxigraph/
.. image:: https://img.shields.io/pypi/implementation/pyoxigraph
:alt: PyPI - Implementation
.. image:: https://img.shields.io/pypi/pyversions/pyoxigraph
:alt: PyPI - Python Version
.. image:: https://img.shields.io/pypi/l/pyoxigraph
:alt: PyPI - License
Oxigraph is a graph database implementing the `SPARQL <https://www.w3.org/TR/sparql11-overview/>`_ standard.
It offers two stores with `SPARQL 1.1 Query <https://www.w3.org/TR/sparql11-query/>`_ capabilities.
@ -15,6 +26,9 @@ The stores are also able to load and dump RDF data serialized in
`N-Quads <https://www.w3.org/TR/n-quads/>`_ and
`RDF/XML <https://www.w3.org/TR/rdf-syntax-grammar/>`_.
Oxigraph Python is distributed on Pypi using the `pyoxigraph <https://pypi.org/project/pyoxigraph/>`_ package.
It can be installed using the usual ``pip install pyoxigraph``.
Oxigraph source code is on `GitHub <https://github.com/oxigraph/oxigraph/tree/master/python>`_.

@ -1,6 +1,6 @@
[package]
name = "oxigraph_server"
version = "0.1.0"
version = "0.1.0-rc.1"
authors = ["Tpt <thomas@pellissier-tanon.fr>"]
license = "MIT/Apache-2.0"
readme = "../README.md"
@ -16,5 +16,5 @@ async-std = { version = "1", features = ["attributes"] }
async-h1 = "2"
http-client = { version = "4", features = ["h1_client"] }
http-types = "2"
oxigraph = { path = "../lib", features = ["rocksdb"] }
oxigraph = { version = "0.1.0-rc.1", features = ["rocksdb"] }
url = "2"

@ -1,6 +1,6 @@
[package]
name = "oxigraph_testsuite"
version = "0.1.0"
version = "0.1.0-rc.1"
authors = ["Tpt <thomas@pellissier-tanon.fr>"]
license = "MIT/Apache-2.0"
readme = "../README.md"
@ -14,7 +14,7 @@ publish = false
[dependencies]
anyhow = "1"
chrono = "0.4"
oxigraph = { path = "../lib" }
oxigraph = { version = "0.1.0-rc.1" }
[dev-dependencies]
criterion = "0.3"

@ -1,6 +1,6 @@
[package]
name = "oxigraph_wikibase"
version = "0.1.0"
version = "0.1.0-rc.1"
authors = ["Tpt <thomas@pellissier-tanon.fr>"]
license = "MIT/Apache-2.0"
readme = "../README.md"
@ -17,6 +17,6 @@ async-h1 = "2"
chrono = "0.4"
http-client = { version = "4", features = ["h1_client"] }
http-types = "2"
oxigraph = { path = "../lib", features = ["rocksdb"] }
oxigraph = { version = "0.1.0-rc.1", features = ["rocksdb"] }
serde_json = "1"
url = "2"
Loading…
Cancel
Save