diff options
Diffstat (limited to 'README.adoc')
-rw-r--r-- | README.adoc | 96 |
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. |