Document not found (404)
174 |This URL is invalid, sorry. Please use the navigation bar or search to continue.
175 | 176 |├── .gitignore ├── .python-version ├── LICENSE ├── Makefile ├── README.md ├── bin ├── build.sh ├── overview.sh └── serve.sh ├── book.toml ├── docs ├── .nojekyll ├── 404.html ├── CNAME ├── FontAwesome │ ├── css │ │ └── font-awesome.css │ └── fonts │ │ ├── FontAwesome.ttf │ │ ├── fontawesome-webfont.eot │ │ ├── fontawesome-webfont.svg │ │ ├── fontawesome-webfont.ttf │ │ ├── fontawesome-webfont.woff │ │ └── fontawesome-webfont.woff2 ├── appendix │ ├── architecture.html │ ├── index.html │ ├── license.html │ ├── roadmap.html │ ├── what.html │ ├── why.html │ └── why_endatabas_an_executive_summary.html ├── architecture │ └── images │ │ └── fake-architecture.svg ├── ayu-highlight.css ├── book.js ├── clients │ ├── console.html │ ├── index.html │ ├── javascript.html │ └── python.html ├── clipboard.min.js ├── css │ ├── chrome.css │ ├── general.css │ ├── print.css │ └── variables.css ├── elasticlunr.min.js ├── favicon.png ├── favicon.svg ├── fonts │ ├── OPEN-SANS-LICENSE.txt │ ├── SOURCE-CODE-PRO-LICENSE.txt │ ├── fonts.css │ ├── open-sans-v17-all-charsets-300.woff2 │ ├── open-sans-v17-all-charsets-300italic.woff2 │ ├── open-sans-v17-all-charsets-600.woff2 │ ├── open-sans-v17-all-charsets-600italic.woff2 │ ├── open-sans-v17-all-charsets-700.woff2 │ ├── open-sans-v17-all-charsets-700italic.woff2 │ ├── open-sans-v17-all-charsets-800.woff2 │ ├── open-sans-v17-all-charsets-800italic.woff2 │ ├── open-sans-v17-all-charsets-italic.woff2 │ ├── open-sans-v17-all-charsets-regular.woff2 │ └── source-code-pro-v11-all-charsets-500.woff2 ├── highlight.css ├── highlight.js ├── index.html ├── mark.min.js ├── print.html ├── reference │ ├── clients.html │ ├── console.html │ ├── data_types.html │ ├── http_api.html │ ├── index.html │ ├── installation.html │ ├── monitoring.html │ ├── operation.html │ ├── troubleshooting.html │ └── websocket_api.html ├── searcher.js ├── searchindex.js ├── searchindex.json ├── sql │ ├── assertions.html │ ├── data_manipulation.html │ ├── data_types.html │ ├── functions.html │ ├── index.html │ ├── intention.html │ ├── operators.html │ ├── path_navigation.html │ ├── queries.html │ ├── schema.html │ ├── time_queries.html │ └── views.html ├── tomorrow-night.css └── tutorial │ ├── index.html │ ├── quickstart.html │ ├── sql_basics.html │ └── try_it.html ├── sample.sql ├── src ├── README.md ├── SUMMARY.md ├── appendix │ ├── README.md │ ├── architecture.md │ ├── discussion.md │ ├── license.md │ ├── roadmap.md │ ├── what.md │ └── why.md ├── beta-warning.md ├── clients │ ├── README.md │ ├── console.md │ ├── javascript.md │ ├── jsdoc.md │ ├── pydoc.md │ └── python.md ├── reference │ ├── README.md │ ├── data_types.md │ ├── http_api.md │ ├── installation.md │ ├── monitoring.md │ ├── operation.md │ └── websocket_api.md ├── sql │ ├── README.md │ ├── assertions.md │ ├── data_manipulation.md │ ├── data_types.md │ ├── functions.md │ ├── intention.md │ ├── operators.md │ ├── path_navigation.md │ ├── queries.md │ ├── schema.md │ ├── time_queries.md │ ├── vector_indexing.md │ └── views.md └── tutorial │ ├── README.md │ ├── quickstart.md │ ├── sql_basics.md │ └── try_it.md └── tools └── jsdoc └── conf.json /.gitignore: -------------------------------------------------------------------------------- 1 | 2 | # mdBook: 3 | book 4 | output 5 | 6 | # emacs: 7 | \#*\# 8 | .\#* 9 | 10 | # sed: 11 | *.bak 12 | 13 | # pydoc (copy) 14 | tools/pydoc/input 15 | -------------------------------------------------------------------------------- /.python-version: -------------------------------------------------------------------------------- 1 | 3.10.13 2 | -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- 1 | .PHONY: all clean jsdoc serve build 2 | 3 | all: clean jsdoc pydoc build 4 | 5 | clean: 6 | rm -rf tools/jsdoc/output 7 | rm -rf tools/pydoc/input 8 | rm -rf tools/pydoc/output 9 | 10 | jsdoc: 11 | mkdir -p tools/jsdoc/output 12 | jsdoc2md -c tools/jsdoc/conf.json -f ../endb/clients/javascript/endb.mjs --heading-depth 3 --name-format --no-gfm --no-cache > tools/jsdoc/output/jsdoc.md 13 | cp tools/jsdoc/output/jsdoc.md src/clients/jsdoc.md 14 | 15 | pydoc: 16 | echo "Creating a local copy of the Python client..." 17 | cp -r ../endb/clients/python tools/pydoc/input 18 | mkdir -p tools/pydoc/output 19 | echo "Building pypdoc project with Sphinx..." 20 | sphinx-apidoc --no-toc --full --append-syspath --extensions sphinx.ext.napoleon -o tools/pydoc/input/doc tools/pydoc/input/ 21 | mv tools/pydoc/input/doc/endb.rst tools/pydoc/input/doc/endb.rst.undoc 22 | grep -v 'undoc-members' tools/pydoc/input/doc/endb.rst.undoc > tools/pydoc/input/doc/endb.rst 23 | echo "Building markdown from pydoc..." 24 | cd tools/pydoc/input/doc/ && make markdown 25 | echo "Cleaning up markdown and copying into endb-book..." 26 | sed -i.bak 's/\*\[\*/\*\\\[\*/g' tools/pydoc/input/doc/_build/markdown/endb.md 27 | sed -i.bak 's/\*\]\*/\*\\\]\*/g' tools/pydoc/input/doc/_build/markdown/endb.md 28 | cp tools/pydoc/input/doc/_build/markdown/endb.md src/clients/pydoc.md 29 | 30 | serve: 31 | ./bin/serve.sh 32 | 33 | build: 34 | ./bin/build.sh 35 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # endb-book 2 | 3 | The Endatabas Book 4 | 5 | ## Setup 6 | 7 | Clone the main `endb` repo in a sibling directory with `endb-book`: 8 | 9 | ```sh 10 | cd .. && git clone git@github.com:endatabas/endb.git && cd endb-book 11 | ``` 12 | 13 | Make sure you have `cargo`, `npm`, and `pip` (Rust, Node, and Python) installed. 14 | Then run: 15 | 16 | ```sh 17 | cargo install mdbook 18 | cargo install mdbook-linkcheck 19 | 20 | npm install -g jsdoc 21 | npm install -g jsdoc-to-markdown 22 | 23 | pip install sphinx 24 | pip install sphinx-markdown-builder │ 25 | pip install sphinx-autodoc-typehints 26 | ``` 27 | 28 | ## Build 29 | 30 | ```sh 31 | make 32 | make serve # to view locally 33 | ``` 34 | 35 | ## Limitations 36 | 37 | * There is no `mdbook-pdf` but the HTML print feature works reasonably well. 38 | 39 | ## Inspiration 40 | 41 | * https://archive.org/details/TheCProgrammingLanguageFirstEdition/mode/2up 42 | * https://lalrpop.github.io/lalrpop/ 43 | * https://doc.rust-lang.org/stable/book/ 44 | 45 | ## TODO 46 | 47 | * beef up tutorial 48 | * remove code example overflows 49 | 50 | ## TODO: Feedback Required / Later 51 | 52 | * NorthWind equivalent? 53 | * docker/podman --pull=always (doesn't work in podman 3.4.4, which is in the 22.04 repo) 54 | -------------------------------------------------------------------------------- /bin/build.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | # defaults to ../output/ based on book.toml 4 | mdbook build 5 | 6 | ( 7 | # copy into ../docs for Netlify / GitHub Pages 8 | mkdir -p $(dirname "$0")/../docs/ 9 | cd $(dirname "$0")/../docs/ 10 | cp -R ../output/html/. ./ 11 | 12 | # inject plausible.io 13 | # TODO: see https://rust-lang.github.io/mdBook/format/configuration/renderers.html#custom-backend-commands 14 | # TODO: copy `_redirects` into /docs 15 | ) 16 | -------------------------------------------------------------------------------- /bin/overview.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | tree -I "book" -I "docs" 4 | 5 | -------------------------------------------------------------------------------- /bin/serve.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | mdbook serve --open 4 | 5 | -------------------------------------------------------------------------------- /book.toml: -------------------------------------------------------------------------------- 1 | [book] 2 | authors = ["Steven Deobald", "Håkan Råberg"] 3 | language = "en" 4 | multilingual = false 5 | src = "src" 6 | title = "The Endatabas Book" 7 | 8 | [build] 9 | # we use a non-standard build dir so it's clearer that it isn't the destination 10 | build-dir = "output" 11 | 12 | [output.html] 13 | cname = "docs.endatabas.com" 14 | git-repository-url = "https://github.com/endatabas/endb-book" 15 | edit-url-template = "https://github.com/endatabas/endb-book/edit/main/{path}" 16 | 17 | [output.html.print] 18 | enable = true 19 | 20 | [output.linkcheck] 21 | -------------------------------------------------------------------------------- /docs/.nojekyll: -------------------------------------------------------------------------------- 1 | This file makes sure that Github Pages doesn't process mdBook's output. 2 | -------------------------------------------------------------------------------- /docs/404.html: -------------------------------------------------------------------------------- 1 | 2 | 3 |
4 | 5 | 6 |This URL is invalid, sorry. Please use the navigation bar or search to continue.
175 | 176 |Endatabas client for the HTTP API
6 |Endatabas client for the WebSocket API
9 |Promise.<Array>
22 |
23 |
24 |
25 | #### `new Endb([url], [opt])`
26 | Create an Endb object (Endatabas client for the HTTP API)
27 |
28 | Param | Type | Default | Description | 32 |
---|---|---|---|
[url] | string | "http://localhost:3803/sql" | HTTP URL to the Endatabas /sql API 37 | |
38 |
[opt] | Object | HTTP options 40 | |
41 | |
[opt.accept] | string | "application/ld+json" | Accept Header content type 43 | |
44 |
[opt.username] | string | username for HTTP Basic Auth 46 | |
47 | |
[opt.password] | string | password for HTTP Basic Auth 49 | |
50 |
Promise.<Array>
56 | Execute a SQL statement over HTTP
57 |
58 | **Kind**: instance method of [Endb
](#Endb)
59 | **Returns**: Promise.<Array>
- - Array of documents
60 | Param | Type | Description | 64 |
---|---|---|
q | string | SQL query as string or Template Literal 69 | |
70 |
[p] | Array | Object | Positional parameters, named parameters, or an array of either 72 | |
73 |
[m] | boolean | many parameters flag 75 | |
76 |
[accept] | string | Accept Header content type 78 | |
79 |
Promise.<Array>
110 |
111 |
112 |
113 | #### `new EndbWebSocket([url], [opt])`
114 | Create an EndbWebSocket object (Endatabas client for the WebSocket API)
115 |
116 | Param | Type | Default | Description | 120 |
---|---|---|---|
[url] | string | "ws://localhost:3803/sql" | WebSocket URL to the Endatabas /sql API 125 | |
126 |
[opt] | Object | WebSocket options 128 | |
129 | |
[opt.ws] | string | WebSocket implementation 131 | |
132 | |
[opt.username] | string | username for Basic Auth 134 | |
135 | |
[opt.password] | string | password for Basic Auth 137 | |
138 |
EndbWebSocket
](#EndbWebSocket)
147 |
148 |
149 | #### `endbWebSocket.sql(q, [p], [m])` ⇒ Promise.<Array>
150 | Execute a SQL statement over a WebSocket with LD-JSON
151 |
152 | **Kind**: instance method of [EndbWebSocket
](#EndbWebSocket)
153 | **Returns**: Promise.<Array>
- - Array of documents
154 | Param | Type | Description | 158 |
---|---|---|
q | string | SQL query as string or Template Literal 163 | |
164 |
[p] | Array | Object | Positional parameters, named parameters, or an array of either 166 | |
167 |
[m] | boolean | many parameters flag 169 | |
170 |