Skip to content
Jarle Aase edited this page Jan 9, 2017 · 14 revisions

Tasks planned for Q1 2017

  • Performance analysis and optimizations for speed and memory footprint
  • Refactor
  • split the json serialization and HTTP client into independent sub-projects
  • New features
  • Cache permanent redirects in a global repository LRU cache
  • Add Context.Sleep() to sleep inside the co-routine
  • Add RestClient constructor that use existing ioservice()/thread. Needed if we want to use the library with existing asio based code.
  • Add RestClient() constructor for use by the calling (main) thread. (To avoid worker thread in simple cases).
  • Implement Chunked Requests (chained DataWriter interface)
  • General support In HTTP Requests module
  • Async from json Serialization
  • Async from producer callback
  • Async from producer loop
  • Implement asynchronous iterators for outgoing data and integrate with json generator.
  • Improve security
  • Put memory constraints on strings and lists in the json deserialization
  • Add options to secure TLS connections (avoid weak encryption and verify server certs).
  • Implement Form Data encoding
  • Portability
  • Fedora 25
  • Debian Stable (Jessie)
  • Debian Testing (latest update)
  • Windows 10 / Visual Studio
  • macOS
  • Ubuntu LTS
  • Windows 10 / clang
  • Cent OS
  • FreeBSD
  • OpenBSD
  • Implement asynchronous iterators for received data and integrate with json parser.
  • Implement generic support for 'pages' of data, where we re-query for more data in the background

Tasks planned for Q2 2017

  • HTTP 2 support

Future maybe someday features

  • Json
  • std::set
  • True generic container support (any object that support forward iteration and insert/add)
  • Add data-type suitable for representing money (must be able to serialize deserialize like float/ BigDecimal)
  • Mime content in HTTP body
  • Mime multipart Requests
  • Mime multipart Responses
  • Circuit Breaker (Fail fast for hosts that don't work)
  • Bulkheads (Use separate connection pools for different services)
  • Make performance comparisons with similar REST libraries for Java, Python and Ruby
  • Improved Proxy support
  • Socks 5
Clone this wiki locally