Skip to content

Commit c962f2d

Browse files
committed
update docs to mention new ouch backend and remove todos
1 parent 1b092eb commit c962f2d

File tree

3 files changed

+9
-36
lines changed

3 files changed

+9
-36
lines changed

README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ Its goal is to be a part of the developer's toolbox where [Linked Data](http://l
2626
* (simplified) [MQL](./docs/MQL.md), for [Freebase](https://en.wikipedia.org/wiki/Freebase) fans
2727
* Plays well with multiple backend stores:
2828
* KVs: [Bolt](https://github.com/boltdb/bolt), [LevelDB](https://github.com/google/leveldb)
29-
* NoSQL: [MongoDB](https://www.mongodb.org), [ElasticSearch](https://www.elastic.co/products/elasticsearch)
29+
* NoSQL: [MongoDB](https://www.mongodb.org), [ElasticSearch](https://www.elastic.co/products/elasticsearch), [CouchDB](http://couchdb.apache.org/)/[PouchDB](https://pouchdb.com/)
3030
* SQL: [PostgreSQL](http://www.postgresql.org), [CockroachDB](https://www.cockroachlabs.com), [MySQL](https://www.mysql.com)
3131
* In-memory, ephemeral
3232
* Modular design; easy to extend with new languages and backends

docs/Configuration.md

+5-2
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,9 @@ All command line flags take precedence over the configuration file.
3737

3838
* `mongo`: Stores the graph data and indices in a [MongoDB](https://www.mongodb.com/) instance.
3939
* `elastic`: Stores the graph data and indices in a [ElasticSearch](https://www.elastic.co/products/elasticsearch) instance.
40-
40+
* `couch`: Stores the graph data and indices in a [CouchDB](http://couchdb.apache.org/) instance.
41+
* `pouch`: Stores the graph data and indices in a [PouchDB](https://pouchdb.com/). Requires building with [GopherJS](https://github.com/gopherjs/gopherjs).
42+
4143
**SQL backends**
4244

4345
* `postgres`: Stores the graph data and indices in a [PostgreSQL](https://www.postgresql.org) instance.
@@ -56,7 +58,8 @@ All command line flags take precedence over the configuration file.
5658
* `leveldb`: Directory to hold the LevelDB database files.
5759
* `bolt`: Path to the persistent single Bolt database file.
5860
* `mongo`: "hostname:port" of the desired MongoDB server. More options can be provided in [mgo](https://godoc.org/gopkg.in/mgo.v2#Dial) address format.
59-
* `elastic`: "http://host:port" of the desired ElasticSearch server.
61+
* `elastic`: `http://host:port` of the desired ElasticSearch server.
62+
* `couch`: `http://user:pass@host:port/dbname` of the desired CouchDB server.
6063
* `postgres`,`cockroach`: `postgres://[username:password@]host[:port]/database-name?sslmode=disable` of the PostgreSQL database and credentials. Sslmode is optional. More option available on [pq](https://godoc.org/github.com/lib/pq) page.
6164
* `mysql`: `[username:password@]tcp(host[:3306])/database-name` of the MqSQL database and credentials. More option available on [driver](https://github.com/go-sql-driver/mysql#dsn-data-source-name) page.
6265

graph/nosql/ouch/README.md

+3-33
Original file line numberDiff line numberDiff line change
@@ -1,34 +1,4 @@
1-
# Ouch, prototype driver for CouchDB/PouchDB
1+
# Ouch driver for PouchDB
22

3-
To run "gopherjs test -v" you must "npm install pouchdb" (which actually runs on top of levelDB).
4-
Also need to "npm install pouchdb-find" for queries.
5-
When running "gopherjs test" from the ouch directory, a pouchdb.test directory will be created (in .gitignore).
6-
7-
To run "go test" a publiclly accessable CouchDB must be at "http://127.0.0.1:5984/ouchtest" with an administrator account testusername:testpassword (basic auth only, as this also works from the browser).
8-
9-
Note from Discussion forum, re future nosql API alterations at https://discourse.cayley.io/t/running-cayley-in-the-browser/960/13
10-
11-
* I suggest that all the Database interface methods have context as the first parameter, and that context is removed from all the "child" methods (like Query.One).
12-
* Reply from dennwc37: This might not work well for DocIterator - it might be passed around and should use the context of the last caller, not the first one. I would say it make sense we can add contexts to Insert, FindByKey and EnsureIndexes and leave other builders as-is, since they already pass context in Do, One, Next, etc.
13-
14-
## TODO
15-
16-
* Report GopherJS bug type conversion in graph/graphtest/graphtest.go:IteratedQuads()
17-
* add Query.Limit() test (and is 1M large enough as the default)
18-
* work out how to delete test db remotely from JS using PouchDB as front-end to CouchDB, so as to test remote from JS
19-
* work out how to implement and test PouchDB/CouchDB replication
20-
* review error handling in from/to Ouch Value/Doc?
21-
* test on live app with instrumentation, to find further optimisation possibilities
22-
* investigate using []interface{} for key values in the Strings type - @dennwc said: "This was actually the reason why I dropped nosql.Key for Value interface - it's now the only array type that is supported. So if kivik can store json array, this can be an indication that Strings is stored there."
23-
24-
25-
26-
## other change
27-
28-
graph/graphtest/graphtest.go:141 IteratedQuads()
29-
```
30-
if res == nil {
31-
return []quad.Quad(nil) // GopherJS seems to have a bug with this type conversion for a nil value
32-
}
33-
return res // NOTE implicit type conversion from quad.ByQuadString to []quad.Quad
34-
```
3+
To run "gopherjs test -v" you must "npm install pouchdb" (which actually runs on top of levelDB).
4+
And "npm install pouchdb-find" for queries.

0 commit comments

Comments
 (0)