summaryrefslogtreecommitdiff
path: root/README.adoc
diff options
context:
space:
mode:
Diffstat (limited to 'README.adoc')
-rw-r--r--README.adoc96
1 files changed, 59 insertions, 37 deletions
diff --git a/README.adoc b/README.adoc
index 80d708f..9c4fec4 100644
--- a/README.adoc
+++ b/README.adoc
@@ -1,37 +1,55 @@
-acid
-====
-
-'acid' is A Continuous Integration Daemon. Currently under heavy development.
-Right now I'm working on a demo JSON-RPC server that will serve as the basis for
-the final daemon.
-
-The aim of this project is to provide a dumbed-down alternative to Travis CI.
-I find it way too complex to set up and run in a local setting, while the basic
-gist of it is actually very simple -- run some stuff on new git commits.
-
-'acid' will provide a JSON-RPC 2.0 service for frontends over FastCGI, SCGI, or
-WebSockets, as well as a webhook endpoint for notifications about new commits.
-The daemon is supposed to be "firewalled" by a normal HTTP server and it will
-not provide TLS support to secure the communications.
-
-'acid' will be able to tell you about build results via e-mail and/or IRC.
-
-Builds will only be supported on the same machine as the daemon. Eventually I
-might be able to add support for fully replicable builds using Docker.
-
-With this being my own project, of course it is written in event-looped C99
-where everything is stuffed into just a few files. At least I hope it's written
-in a somewhat clean manner. Feel free to contribute.
-
-Building and Installing
------------------------
-Build dependencies: CMake, pkg-config, help2man, libmagic,
+json-rpc-shell
+==============
+:compact-option:
+
+'json-rpc-shell' is a simple shell for running JSON-RPC 2.0 queries.
+
+This software has been created as a replacement for the following shell, which
+is written in Java: http://software.dzhuvinov.com/json-rpc-2.0-shell.html
+
+Features
+--------
+In addition to most of the features provided by Vladimir Dzhuvinov's shell
+you 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
+
+Supported transports
+--------------------
+ - HTTP
+ - HTTPS
+ - WebSocket
+ - WebSocket over TLS
+
+WebSockets
+~~~~~~~~~~
+The JSON-RPC 2.0 spec doesn't say almost anything about underlying transports.
+The way it's implemented here is that every request is sent as a single text
+message. If it has an "id" field, i.e. it's not just a notification, the
+client waits for a message from the server in response.
+
+There's no support so far for any protocol extensions, nor for specifying
+the higher-level protocol (the "Sec-Ws-Protocol" HTTP field).
+
+Packages
+--------
+Regular releases are sporadic. git master should be stable enough. You can get
+a package with the latest development version from Archlinux's AUR.
+
+Building and Usage
+------------------
+Build dependencies: CMake, pkg-config, help2man,
liberty (included), http-parser (included) +
-Runtime dependencies: libev, Jansson
+Runtime dependencies: libev, Jansson, cURL, openssl,
+ readline or libedit >= 2013-07-12,
- $ git clone --recursive https://git.janouch.name/p/acid.git
- $ mkdir acid/build
- $ cd acid/build
+ $ 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
@@ -42,18 +60,22 @@ To install the application, you can do either the usual:
Or you can try telling CMake to make a package for you. For Debian it is:
$ cpack -G DEB
- # dpkg -i acid-*.deb
+ # dpkg -i json-rpc-shell-*.deb
Note that for versions of CMake before 2.8.9, you need to prefix `cpack` with
`fakeroot` or file ownership will end up wrong.
-Usage
------
-TODO. The main application hasn't been written yet.
+Run the program with `--help` to obtain usage information.
+
+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, and WebSocket interfaces. It responds to the `ping` method.
Contributing and Support
------------------------
-Use https://git.janouch.name/p/acid to report any bugs, request features,
+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.