1.0 - 2009-02-16
~~~~~~~~~~~~~~~~~~
- Fix some small bugs

0.9.97 - 2008-10-16 (1.0.0-rc8)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- Updated support contact. Ondrej Jirman is no longer the maintainer.
- Many improvements to the build system by Diego Pettenò

0.9.96 - 2008-09-10 (1.0.0-rc7)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- Allow servlet to retrieve client's IP address
- Fix some small harmless bugs

0.9.95 - 2008-07-24 (1.0.0-rc6)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
New __fallback__ hook for handling undefined servlet methods. Lots of
compatibility fixes.

- New __fallback__ hook for handling undefined servlet methods.
- Port VALA support to vala-0.3.3
- Fix compilation problems on 64bit platforms.
- FreeBSD compilation fix. (by Thijs Eilander)
- Use TLSv1 for communication if possible.
- Added binary compatibility padding to the public structs.

0.9.94 - 2008-04-08 (1.0.0-rc5)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Bugfix release.

- HTTP code 1 was always returned.

0.9.93 - 2008-04-05 (1.0.0-rc4)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- Session handling was changed:
  - "X-Libxr-Session-ID" HTTP header was renamed to "X-SESSION-ID". 
  - Introduced new "X-SESSION-USE" header, that can be used to enable
    session support.
- Fixed some compiler warnings.
- HTTP API was improved:
  - xr_http_read() does not read beyond the end of the message, and returns
    0 when the message was read sucessfully.
  - Added xr_http_get_code()
  - Fixed bugs in XR_DEBUG_HTTP debug mode.
  - xr_http_write_all() automatically calculate buffer length if length
    parameter is negative.
  - xr_http_setup_response() now supports all HTTP 1.0 status codes.
  - Added xr_http_set_basic_auth() and xr_http_get_basic_auth().
  - Implemented sample upload/download hooks.
  - If upload/download hooks are not defined, return 501 "Not Implemented"
    HTTP status code.

0.9.92 - 2008-01-24 (1.0.0-rc3)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- Format string based xr_value builder and parser (thanks to David Lee).
  See tests/value-utils-test.c for exmaples.
- Fix transport detection if content-type contains charset.
- Added python xmlrpclib client test and bug fixes to make it work.
- Re-add support for HTTP resource based servlet identification.

0.9.91 - 2008-01-07 (1.0.0-rc2)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Again, this release is backward incompatible with previous libxr releases,
because of support for implicit string XML-RPC values.

- Support implicit string values in XML-RPC (thanks to David Lee).
- Relicensed to include LGPLv2 in addition to LGPLv3.
- Updated docs.

0.9.90 - 2007-12-10 (1.0.0-rc1)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Note: This is source and binary incompatible release.

This release reveals the significance of 'x' in libxr. It does not stand for
XML, it stands for whatever you want (or more precisely, whatever you are
willing to implement).

- Added support for handling arbitrary uploads and downloads (GETs, POSTs). See
  __upload__ and __download__ hooks.
- Use buffered BIO and simplify/speedup HTTP code.
- Allow to use libxr from C++ code. (thanks to David Lee)
- Allow to set custom HTTP headers on xr_client_conn object.
- Implemented HTTP basic auth.
- Removed unused GLIB mainloop integration.
- Don't pretty print XML-RPC requests unless in XR_DEBUG_HTTP mode.
- Return boolean FALSE intead of -1 on errors in: xr_client_call,
  xr_client_open, xr_server_bind, xr_server_run, xr_server_register_servlet,
  xr_value_to_*
- Use transparent SSL DEFLATE compression when possible.
- Implemented copy functions for XDL_ARRAY and XDL_STRUCT types (in addition to
  existing *_new and *_free functions).
- Always return -1 error code on internal errors. (100 was returned before)
- Added support for multiple transport types. Server can handle multiple
  transports transparently based on Content-Type HTTP header.
- Implemented JSON-RPC transport. (application/json)
- Implemented server side 'session' support, so that servlet instance can be
  preserved across multiple connections. (for clients that do not support
  persistent connections.)
- Implemented Prototype based AJAX JSON-RPC client code generator.
- Implemented simple cURL based PHP JSON-RPC proxy.
- All g_assert() uses replaced with g_return_if_fail()
- Fixed #line 123 "(null)" bug in xdl-compiler.

There is still a possibility that libxr API will change slightly until 1.0.0 is
released. 

0.9.15 - 2007-10-29
~~~~~~~~~~~~~~~~~~~

- Added XDL pretty printer.
- Added vim syntax highlighting script for XDL files.
- Added proper license notices to all files (LGPL v3).
- Added experimental vala language support. XDL compiler can generate VAPI file.
- New mailing list. Feel free to contribute. Address is libxr@zhost.zonio.net
  You can subscribe it here: http://zhost.zonio.net/mailman/listinfo/libxr

0.9.14 - 2007-09-20
~~~~~~~~~~~~~~~~~~~
Note: This is binary incompatible release.

- Added xr_init() and xr_fini() calls.
- Fixed make distcheck.
- Improved xr_call dump format. It's much less space hungry.
- Added NS_xmlrpc_error_to_string() method.
- Implemented 'any' type. (API change: xr_value_free replaced by xr_value_unref)
- Implemented 'take' method parameter flag. (Pass parameter ownership to the stub.)
  See test.xdl for details.
- Imporve tests.

0.9.13 - 2007-08-20
~~~~~~~~~~~~~~~~~~~
- Leak tests added and detected leaks fixed.

0.9.12 - 2007-08-19
~~~~~~~~~~~~~~~~~~~
- Allow multiple servlets per connection. Method names now contain servlet
  name. If you want to get method name without servlet name call
  xr_call_get_method_name().
- xr_server_simple() can now take multiple servlet definitions.

0.9.11 - 2007-07-05
~~~~~~~~~~~~~~~~~~~
- Fix #line numbering issues (use lemon/re2c in xdl-compiler)
- New xr_server_simple() method for simple XML-RPC server implementations and
  tests
- New updated HOWTO and sample code

0.9.10 - 2007-05-18
~~~~~~~~~~~~~~~~~~~
- Win32 port using mingw32 toolchain.
- Use GRegex if glib >= 2.13.0 is detected. 
- Improve gcc-3.x support

0.9.9 - 2007-04-28
~~~~~~~~~~~~~~~~~~
- Fix compatibility with XML-RPC spec:
  - dateTime encoding
  - <array> must contain <data>

0.9.8 - 2007-04-22
~~~~~~~~~~~~~~~~~~
- Improve debugging options: runtime selectable dumping of HTTP
  requests/responses and parsed RPC calls
- Fix bug when receiving big response from the server.

0.9.7 - 2007-04-14
~~~~~~~~~~~~~~~~~~
- Fix integer value encoding if passed as <value><i4>1<i4/></value>

0.9.6 - 2007-03-28
~~~~~~~~~~~~~~~~~~
- Send Connection: keep-alive HTTP header. This is necessary for ruby XML-RPC
  client to not drop connection after first request. You will also need this
  patch to make it work:
  http://rubyforge.org/tracker/?group_id=426&atid=1698&func=detail&aid=9353
- Implement tracing infrastructure.
- Allow to specify faults and their codes in XDL.

0.9.5 - 2007-03-18
~~~~~~~~~~~~~~~~~~
- Get rid of bind error.
- Get errors from OpenSSL BIO the right way.
- Use safe signal handlers.
- Blobs are now fully supported.
- Fix compatibility with XML-RPC spec:
  - boolean encoding
  - fault encoding

0.9.4 - 2007-02-22
~~~~~~~~~~~~~~~~~~
- Don't assume that exceptions with 0 means no error.

0.9.3 - 2007-01-27
~~~~~~~~~~~~~~~~~~
- Improve error handling (use GError wherever possible).
- Implement pre_call and post_call hooks.
- Added some unit tests.
- Improve error messages.
- Support blobs (base64).

0.9.2 - 2006-12-01
~~~~~~~~~~~~~~~~~~
- Allow to generate source code for client and server separately.
  See xdl-compiler --mode option.

0.9.1 - 2006-12-01
~~~~~~~~~~~~~~~~~~
- Added some unit tests
- Implemented error reporting from xr_server using GError
- Added GSource for server integration with glib mainloop
- Select accepting socket so that accept() doesn't block

0.9.0 - Initial Release
~~~~~~~~~~~~~~~~~~~~~~~
- Initial release of libxr library. Whoa!
