Skip to content
Compare
Choose a tag to compare
@apolukhin apolukhin released this 24 Dec 16:31

Changes since v2.5:

  • storages::secdist::Secdist is now automatically reloaded for Mongo, Redis and PostgreSQL databases if the secdist file was changed. Now changing the connection parameters in file does not require service restart.

  • Public parts of the Redis driver were moved out from impl/ directory and placed into storages::redis:: namespace. If you were relying on the old paths, see ./scripts/migrate_from_legacy_redis_ns.sh script to ease migration.

  • Shortened testsuite logs were made more functional by providing HTTP URL info.

  • Removed old gRPC interface for server handlers as was promised in previous release notes.

  • gRPC client interfaces were changed to be more user friendly. For example, for HelloWorld method in protobuf we generate the old HelloWorld function along with the new AsyncHelloWorld and SyncHelloWorld functions. AsyncHelloWorld returns a ugrpc::client::ResponseFuture that can be used to retrieve the request result later in code. SyncHelloWorld retrieves the response from the future and returns the response itself. Consider replacing:

    • HelloWorld(x).Finish() with SyncHelloWorld(x)
    • auto res = HelloWorld(x); /* a lot of code */; res.Finish(); with auto res = AsyncHelloWorld(x); /* a lot of code*/; res.Get(); In next release we will remove the old HelloWorld and will rename SyncHelloWorld into HelloWorld.
  • Added Easy - library for single file prototyping. Now the service can be created in a few code lines:

int main(int argc, char* argv[]) {
  easy::HttpWith<>(argc, argv)
      .DefaultContentType(http::content_type::kTextPlain)
      .Route("/hello", [](const server::http::HttpRequest& /*req*/) {
          return "Hello world";  // Just return the string as a response body
      });
}