You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+11-2Lines changed: 11 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -10,7 +10,7 @@ Try it out on the online playground: <https://jsonquerylang.org>
10
10
11
11
## Features
12
12
13
-
- Small: just `2.9 kB` when minified and gzipped! The JSON query engine without parse/stringify is only `1.3 kB`.
13
+
- Small: just `3.0 kB` when minified and gzipped! The JSON query engine without parse/stringify is only `1.4 kB`.
14
14
- Feature rich (40+ powerful functions)
15
15
- Easy to interoperate with thanks to the intermediate JSON format.
16
16
- Expressive
@@ -34,6 +34,7 @@ On this page:
34
34
External pages:
35
35
36
36
-[Function reference](reference/functions.md)
37
+
-[Test Suite](test-suite/README.md)
37
38
38
39
## Installation
39
40
@@ -623,7 +624,9 @@ Another gotcha is that unlike some other query languages, you need to use the `m
623
624
624
625
## Development
625
626
626
-
To develop, check out the repo, install dependencies once, and then use the following scripts:
627
+
### JavaScript
628
+
629
+
To develop, check out the JavaScript repo, install dependencies once, and then use the following scripts:
627
630
628
631
```text
629
632
npm run test
@@ -637,6 +640,12 @@ npm run build-and-test
637
640
638
641
Note that a new package is published on [npm](https://www.npmjs.com/package/@jsonquerylang/jsonquery) and [GitHub](https://github.com/jsonquerylang/jsonquery/releases) on changes pushed to the `main` branch. This is done using [`semantic-release`](https://github.com/semantic-release/semantic-release), and we do not use the `version` number in the `package.json` file. A changelog can be found by looking at the [releases on GitHub](https://github.com/jsonquerylang/jsonquery/releases).
639
642
643
+
### Implement in a new language
644
+
645
+
Support for JSON Query language can be implemented in new programming languages. Implementing the query engine is most straight forward: this boils down to implementing each of the functions (`sort`, `filter`, `groupBy`, etc.), and creating a compiler which can go through a JSON Query like `["sort", ["get", "name"], "desc"]` look up the function `sort`, and pass the arguments to it. Implementing a parser and stringifier is a bit more work, but the parser and stringifier of the JavaScript implementation can be used as a reference.
646
+
647
+
There is a JSON based Test Suite available that can be used to ensure that your implementation matches the behavior of the reference implementation, see: [Test Suite](test-suite/README.md).
648
+
640
649
## Motivation
641
650
642
651
There are many powerful query languages out there, so why the need to develop `jsonquery`? There are a couple of reasons for this.
0 commit comments