Revision history for Riap 1.2.3 2015-03-05 (PERLANCAR) [REMOVED FEATURES] - Remove support for "J" header in Riap::Simple. In order to further simplify the Riap::Simple protocol, client can now only send "j" header. The server now responds also using "j" header. All request and response are now single lines. 1.2.2 2014-10-30 (PERLANCAR) - Support Rinci's partial argument/result as well as input/output stream (in Riap as well as Riap::HTTP, but not in Riap::Simple). 1.2.1 2014-10-23 (PERLANCAR) - No spec changes. - Typo: unimplemented status is 501, not 502. 1.2.0 2014-10-23 (PERLANCAR) - Bump version to 1.2. This version addresses sending/receiving binary data over JSON by base64-encoding. - Client can send base64-encoded binary data in arguments using the C<ARGNAME:base64> key in 'args' Riap request key. - Server can return base64-encoded binary data in result by setting result metadata property 'riap.result_encoding' to 'base64'. - Server now MUST return result metadata with at least 'riap.v' with the value of 1.2. The 'info' action is now not required to send Riap protocol version ('v'). - Client MUST check and strip all 'riap.*' keys in result metadata. Client must fail when it encounters an unknown 'riap.*' key or a known key with an invalid/unknown value. This is so that future incompatibilities can be handled/detected. 1.1.24 2014-08-18 (SHARYANTO) - No spec changes. - Mention JSON RPC. 1.1.23 2014-06-18 (SHARYANTO) [ENHANCEMENTS] - Introduce new action 'complete_arg_elem'. 1.1.22 2013-12-21 (SHARYANTO) [INCOMPATIBLE CHANGES] - Remove 'marklog' request key, merge it into 'loglevel'. This is because, if separate chunks are not marked, result is mixed with log message(s). 1.1.21 2013-12-21 (SHARYANTO) - Introduce 'X-Riap-V' (require HTTP response header) to let server declare Riap::HTTP protocol version. - Allow server to decline 'loglevel' and 'marklog' request, by requiring client to read the value of 'X-Riap-Logging' HTTP response header. The absence of this HTTP header means server does not support it. 1.1.20 2013-11-27 (SHARYANTO) - list action: should return relative URIs to be more tree-like. 1.1.19 2012-08-29 (SHARYANTO) - call action: Specify 'dry_run' and 'confirm'. - call action: Advise not to pass special arguments. - Riap: Mention tx_id and link to Riap::Transaction. 1.1.18 2012-08-17 (SHARYANTO) - "Selamat ulang tahun ke-67, negaraku. Merdeka!" - Move most details of transaction behavior to Rinci::Transaction 1.1.24, to avoid duplication. 1.1.17 2012-08-01 (SHARYANTO) - Allow riap+pipe scheme to specify program arguments. 1.1.16 2012-07-31 (SHARYANTO) - Rename Riap::TCP to Riap::Simple. - Introduce schemes: riap+unix (previously mixed together with riap+tcp), riap+pipe. 1.1.15 2012-07-19 (SHARYANTO) - Riap::TCP: Allow single-line request using j<JSON><CRLF> 1.1.14 2012-06-22 (SHARYANTO) - Some small changes, mainly transaction status labels (final statuses are in uppercase: C, R, U, X; while transient statuses are in lowercase: i, a, u, d, e). - Now requires Rinci 1.1.19. 1.1.13 2012-05-31 (SHARYANTO) - Some revision and incompatible changes to Riap::Transaction specification: rename requests (begin -> begin_tx, commit -> commit_tx, and so on), tweak some status codes, mention status E (prepared). - Now requires Rinci 1.1.17. 1.1.12 2012-05-03 (SHARYANTO) - (NEW) Riap::Transaction, specification for doing transaction and undo over Riap. 1.1.11 2012-04-03 (SHARYANTO) - (REMOVED) Remove mention of 'riap+http' and 'riap+https' as they are useless. Use 'http' and 'https'. 1.1.10 2012-04-03 (SHARYANTO) - (Change, or rather define, as it has not been specified formally) 'pm' URI scheme to (or, as) 'pl'. 1.1.9 2012-03-08 (SHARYANTO) - Add new action for variable: get 1.1.8 2012-03-01 (SHARYANTO) - Add new action for package: child_metas - HTTP: Add new action: srvinfo - HTTP: The valid values of 'fmt' is now up to the implementation (except that 'json' still needs to be supported). 1.1.7 2012-02-22 (SHARYANTO) - (REMOVE, INCOMPATIBLE) Remove action 'complete_arg_name'. This action can be implemented in the client side by retrieving function metadata using 'meta' action (this requires larger bandwidth, but clients can do caching). It is better to implement this on the client side due to specific requirements like --foo vs -foo, --boolopt as well as --noboolopt (or --no-boolopt), and so on. 1.1.6 2012-02-22 (SHARYANTO) - Add new action 'actions'. To list available actions on a code entity, use this action now instead of 'info'. - (INCOMPATIBLE) Rename 'complete' action to 'complete_arg_val'. - Add new action 'complete_arg_name'. 1.1.5 2012-02-15 (SHARYANTO) - Some fixes (build/deps, examples, 'info' action should contain 'acts') and minor updates. 1.1.4 2012-02-01 (SHARYANTO) - Declare that in 1.1 series, minor backward compatibility problems between revisions are to be expected. - Make 'v' request key optional, defaults to 1.1. - Rename 'ofmt' request key to 'fmt'. - Change required result keys of 'info' action. 1.1.3 2012-01-27 (SHARYANTO) - Specify riap URI scheme (moved from Rinci). - Add Riap::TCP. 1.1.2 2012-01-17 (SHARYANTO) - Rename distribution from Rinci-HTTP as Riap. 1.1.1 2012-01-15 (SHARYANTO) - No spec changes. Fix misplaced section in POD. 1.1.0 2012-01-15 (SHARYANTO) - First release. Renamed from Sub::Spec::HTTP. Now follow the Rinci specification instead of Sub::Spec. Generalized to perform actions on any code entities instead of just functions. Change terminologies.