UNPKG

4.27 kBMarkdownView Raw
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
5Persistent JavaScript Objects and a fine-grained Document Database, using a Global Storage database
6
7Rob Tweed <rtweed@mgateway.com>
87 March 2016, M/Gateway Developments Ltd [http://www.mgateway.com](http://www.mgateway.com)
9
10Twitter: [@rtweed](https://twitter.com/rtweed)
11
12Google 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
17The *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
34For 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
44Most users of *ewd-document-store* will do so through the [*QEWD* framework](https://github.com/robtweed/qewd)
45where it is a tightly-integrated piece of QEWD's core functionality.
46
47It 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
49It 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.