aboutsummaryrefslogtreecommitdiff
path: root/README.adoc
blob: 42b12813b848a4fd727b605176979ba14b62d11f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
json-rpc-shell
==============
:compact-option:

'json-rpc-shell' is a shell for running JSON-RPC 2.0 queries.

This software was originally created as a replacement for
http://software.dzhuvinov.com/json-rpc-2.0-shell.html[a different shell] made by
Vladimir Dzhuvinov, in order to avoid Java, but has evolved since.

Features
--------
In addition to most of the features provided by its predecessor, you will get
the following niceties:

 - configurable JSON syntax highlight, which with prettyprinting turned on
   helps you make sense of the results significantly
 - ability to pipe output through a shell command, so that you can view the
   results in your favourite editor or redirect them to a file
 - ability to edit the input line in your favourite editor as well with Alt+E
 - WebSocket (RFC 6455) can also be used as a transport rather than HTTP
 - even Language Server Protocol servers may be launched as a slave command
 - support for method name tab completion using OpenRPC discovery or file input

Documentation
-------------
See the link:json-rpc-shell.adoc[man page] for information about usage.
The rest of this README will concern itself with externalities.

Packages
--------
Regular releases are sporadic.  git master should be stable enough.
You can get a package with the latest development version using Arch Linux's
https://aur.archlinux.org/packages/json-rpc-shell-git[AUR],
or as a https://git.janouch.name/p/nixexprs[Nix derivation].

Building
--------
Build dependencies: CMake, pkg-config, liberty (included),
 http-parser (included), asciidoctor or asciidoc (recommended but optional) +
Runtime dependencies:
 libev, Jansson, cURL, openssl, readline or libedit >= 2013-07-12

 $ git clone --recursive https://git.janouch.name/p/json-rpc-shell.git
 $ mkdir json-rpc-shell/build
 $ cd json-rpc-shell/build
 $ cmake .. -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Debug
 $ make

To install the application, you can do either the usual:

 # make install

Or you can try telling CMake to make a package for you.  For Debian it is:

 $ cpack -G DEB
 # dpkg -i json-rpc-shell-*.deb

Test server
-----------
If you install development packages for libmagic, an included test server will
be built but not installed which provides a trivial JSON-RPC 2.0 service with
FastCGI, SCGI, WebSocket and LSP-like co-process interfaces.  It responds to
`ping` and `date`, supports OpenRPC discovery and it can serve static files.

Contributing and Support
------------------------
Use https://git.janouch.name/p/json-rpc-shell to report bugs, request features,
or submit pull requests.  `git send-email` is tolerated.  If you want to discuss
the project, feel free to join me at ircs://irc.janouch.name, channel #dev.

Bitcoin donations are accepted at: 12r5uEWEgcHC46xd64tt3hHt9EUvYYDHe9

License
-------
This software is released under the terms of the 0BSD license, the text of which
is included within the package along with the list of authors.