All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
- Fedora CI build by updating to Catch v2.13.7
- Typo in README (#313)
- Vendoring catch library instead of downloading from github
- Deprecation warnings for Jsoncpp (#312)
- Compatibility with newer libmicrohttpd versions (>= 0.9.71) (#298 #299)
- Typo in diagram (#293)
- File descriptor leaks in connectors
- Moved from travis-ci to circleci (#311)
- Use
.empty()
checks instead of.size() == 0
- Linux SerialPort client and server connector(#286)
- Build example for Centos 7 (#267)
Json::Value
example code (#281)- IPv6 Support for
HttpServer
(#275) - Added data field in error handler in JS stub generator
- Incorrect README sections (#280)
- Incorrect INTERFACE_LINK_LIBRARIES (#253)
HttpClient
Response Code checking (#278)
- The
HttpServer
connector now has aBindLocalhost
method (#261)
- Don't precompress and honor GnuInstallDir for manpage of jsonrpcstub (#252)
- Arch Linux CI build (base image changed)
- brew CI build (no longer has
--ssl
flag for libmicrohttpd) - Catching
Jsoncpp::Exception
for.parse()
invocations - Compile issue when building static only (#263)
- Update catch2 to 2.7.0 and fix include path (#251)
- Removed deprecated jsoncpp invocations
- Build issue on RHEL7 (#244, #246)
- Build with empty install prefix (#226)
- GnuInstallDirs handling for library targets (#239)
- Disabled libcurl signal handlers (#210)
- Terrible performance for socket based connectors (#229)
- Library versioning error (1.1.0 release actually specified 1.0.0)
- Missing documentation about python stubgenerator (#222)
- Parameter to enable omitEndingLineFeed() (#213)
- Documentation in examples about throwing server side errors (#249)
- Updated CI images to use Ubuntu 18.04 instead of 17.04
- Disabled FileDescriptor connectors by default
- Removed custom FindCURL cmake module (#237)
- Parameter handling of procedures without params in stubgenerator
- Fix missing hiredis libs when using only REDIS_CLIENT
- Fix running tests in parallel (#204)
- Fix fetching new version of catch, if it is not installed locally
- Disable UnixDomainSocket Connectors by default, they introduce flaky tests
- Merged MSVC related PR.
- Typo in ERROR_CLIENT_CONNECTOR exception
- Integration testsuite when run without HTTP
- dev/testcoverage.sh script which did not create the build directory
- Indentation in CMakeLists.txt files
- Positional parameters with more than 10 items
- C++11 deprecated dynamic exception specifiers have been removed
- libmicrohttpd legacy detection for
EPOLL
- File descriptor client and server connector
- Redis client and server connector
- Docker based build system for testing on multiple distributions
- Python client stubgenerator
- CI Integration for OSX build
StreamReader
andStreamWriter
classes to handle the buffering- Makefile for developer/contributor related functions
- Method
BatchResponse::getResult(Json::Value& id)
- Method
AbstractServerConnector::SendResponse()
- Scripts dev/ci.sh, dev/createpackage.sh, dev/installdeps.sh
dev/coverage.sh
in favor ofmake coverage
- Windows support, which will hopefully come back soon
- Migrated from coveralls.io to codecov.io
- Changed maintainer e-mail address
- Use libmicrohttpd's EPOLL where possible (lmhd >= 0.9.52)
- Added
set -e
to testcoverage.sh script - Changelog format to keepachangelog.com
- Refactored all socket-based client and server connectors to reduce code duplication
- Changed interfaces for
AbstractServerConnector
to avoid the uglyvoid *
backpointer
- armhf compatibility
- Invalid client id field handling (removed int only check)
- Security issues in unixdomainsocket connectors
- Missing CURL include directive
- Parallel build which failed due to failing CATCH dependency
- Handling 64-bit ids
- Invalid parameter check
- Invalid pointer handling in HTTP-Server
- TCP Server + Client connectors
- Requiring C++11 support (gcc >= 4.8)
- pkg-config files for all shared libraries
- UNIX Socket client + server connector
- multiarch support
- unit testing framework to catch
- allow disabling shared library build
- split out shared/static library for stubgenerator
- building tests with examples disabled.
- unnecessary rebuilds of stubs on each
make
call.
--version
option to jsonrpcstub.- msvc support.
- data field support for JsonRpcException.
- contributions guide: https://github.com/cinemast/libjson-rpc-cpp#contributions
- HttpClient uses Http Keep-Alive, which improves performance drastically.
- multiarch support.
- Made static library build optional (via
BUILD_STATIC_LIBS
).
- Some spelling mistakes.
- HttpServer with Threading option in SSL startup.
- Use CMAKE versioning in manpage.
- Improved include scheme of jsoncpp.
- coverity scan support
- API compatibility report
- Stubgenerator option for protocol switches (JSON-RPC 1.0 & 2.0)
- Improved manpage
- Memory leaks
- Full WIN32 build support
- JavaScript client stub support
- Improved test coverage (100% line coverage)
- Switched Http Server to libmicrohttpd
- Removed TCP Client/Server implementation due to security and codestyle problems.
- Removed dirty pointer stuff in bindAndAddX() methods.
- Using call by value in generated stubs for primitive data types.
- Minor bugs
- Testcases for client + server -> higher testcoverage
- JSON-RPC 1 Client + Server support
- Refactorings in server for JSON-RPC 1 support
- Hiding irrelevant API headers from installation
- Renamed AbstractClientConnector to IClientConnector (please regenearte your client stubs after upgrading)
- Reactivated dev/testcoverage.sh to measure testcoverage.
- Minor bugs
- Experimental Javascript client to stubgenerator
- Changed SOVERSION
- Adapted HTTP Server to enable CORS.
- Renamed .so files to avoid collisions with makerbot's libjsonrpc.
- Invalid Batchcalls in Client and Server caused runtime exceptions.
- Namespace/package support for generated stub classes.
- CMake options to enable/disable Stubgenerator, Examples, Connectors and Testsuite.
- Boost-test based unit testing suite, which makes testing more flexible.
- Split up server and client into separate libraries
- Lot's of refactorings in the build system and stubgenerator.
- Removed Autotools support (because of all the changes in this release).
- Removed embedded libjson-cpp.
- Simplified spec format: a procedure specification without
return
field is a notification.
- Support for positional parameters. (see at example specification how to declare them)
- Minor bugs
- Stub generator for client and server.
- SpecificationWriter to generate Specifications from RPC-Server definitions.
- SpecificationParser to parse a Specification file and generate Methods for the RPC-Server.
- Automated testing after build phase (using
make test
)
- Refactored architecture.
- Removed mandatory configuration files (making it more compatible for embedded use cases).
- Updated JsonCPP library
- Update Mongoose library
- Enable SSL Support (provided by mongoose)
- Embedding dependent libraries (to avoid naming conflicts)
- Initial release