1 | # ewd-document-store
|
2 |
|
3 | [![Build Status](https://travis-ci.org/robtweed/ewd-document-store.svg?branch=master)](https://travis-ci.org/robtweed/ewd-document-store) [![Coverage Status](https://coveralls.io/repos/github/robtweed/ewd-document-store/badge.svg?branch=master)](https://coveralls.io/github/robtweed/ewd-document-store?branch=master)
|
4 |
|
5 | Persistent JavaScript Objects and a fine-grained Document Database, using a Global Storage database
|
6 |
|
7 | Rob Tweed <rtweed@mgateway.com>
|
8 | 7 March 2016, M/Gateway Developments Ltd [http://www.mgateway.com](http://www.mgateway.com)
|
9 |
|
10 | Twitter: [@rtweed](https://twitter.com/rtweed)
|
11 |
|
12 | Google Group for discussions, support, advice etc: [http://groups.google.co.uk/group/enterprise-web-developer-community](http://groups.google.co.uk/group/enterprise-web-developer-community)
|
13 |
|
14 |
|
15 | ## About ewd-document-store
|
16 |
|
17 | The *ewd-document-store* module abstracts Global Storage databases as persistent JSON and/or on-disk JavaScript Objects. It is built upon the lower-level Global Storage access APIs provided by a number of other modules:
|
18 |
|
19 | - for YottaDB:
|
20 | - [mg-dbx](https://github.com/chrisemunt/mg-dbx)
|
21 | - [NodeM](https://github.com/dlwicksell/nodem)
|
22 | - For InterSystems Cache and IRIS:
|
23 | - [mg-dbx](https://github.com/chrisemunt/mg-dbx)
|
24 | - the *cache.node* and *iris.node* modules that are provided by InterSystems
|
25 |
|
26 | *ewd-document-store* is the basis of [QEWD-JSdb](https://github.com/robtweed/qewd-jsdb), and provides APIs for a range of database models, including:
|
27 |
|
28 | - persistent JSON / on-disk JavaScript Objects
|
29 | - Redis-like Lists
|
30 | - Redis-like Key/Object store
|
31 | - Relational Database with SQL
|
32 | - Persistent XML/HTML DOM with XPath
|
33 |
|
34 | For more information, see the [QEWD-JSdb documentation](https://github.com/robtweed/qewd-jsdb).
|
35 |
|
36 |
|
37 | ## Installation
|
38 |
|
39 | npm install ewd-document-store
|
40 |
|
41 |
|
42 | ## Using ewd-document-store
|
43 |
|
44 | Most users of *ewd-document-store* will do so through the [*QEWD* framework](https://github.com/robtweed/qewd)
|
45 | where it is a tightly-integrated piece of QEWD's core functionality.
|
46 |
|
47 | It can also be used independently. If you do so, you will also need to ensure that you are using one of the lower-level Global Storage access modules described above.
|
48 |
|
49 | It is recommended that you consult the [QEWD-JSdb documentation](https://github.com/robtweed/qewd-jsdb) for more information.
|
50 |
|
51 |
|
52 | ## Integration tests
|
53 |
|
54 | * You must have [InterSystem Caché](http://www.intersystems.com/our-products/cache/cache-overview/) installed
|
55 | * You must have `cache.node` in npm global registy. Read [Installation](http://docs.intersystems.com/latest/csp/docbook/DocBook.UI.Page.cls?KEY=BXJS_intro#BXJS_intro_install) to get more details
|
56 | * Run `npm link cache.node` before running integration tests
|
57 | * You may need to run this as sudo because of permissions
|
58 |
|
59 |
|
60 | ## License
|
61 |
|
62 | Copyright (c) 2013-20 M/Gateway Developments Ltd,
|
63 | Reigate, Surrey UK.
|
64 | All rights reserved.
|
65 |
|
66 | http://www.mgateway.com
|
67 | Email: rtweed@mgateway.com
|
68 |
|
69 |
|
70 | Licensed under the Apache License, Version 2.0 (the "License");
|
71 | you may not use this file except in compliance with the License.
|
72 | You may obtain a copy of the License at
|
73 |
|
74 | http://www.apache.org/licenses/LICENSE-2.0
|
75 |
|
76 | Unless required by applicable law or agreed to in writing, software
|
77 | distributed under the License is distributed on an "AS IS" BASIS,
|
78 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
79 | See the License for the specific language governing permissions and
|
80 | limitations under the License.
|