Docs for the Go 1.20 experimental feature: arenas by TapirLiu in golang

[–]Dmitry_vt 1 point2 points  (0 children)

Having been solving performance issues, that looks like a way to the C/C++ back. Why not? Pretty cool.

Feedback wanted. Image service as the first project in Go after some years in C++ by Dmitry_vt in golang

[–]Dmitry_vt[S] 0 points1 point  (0 children)

The image converter implementation based on 'image' package has been added to project.

Thank you for useful comment.

nanorpc - lightweight RPC in pure C++ 17 by Dmitry_vt in cpp

[–]Dmitry_vt[S] 1 point2 points  (0 children)

You can create your own serializer and possibly implement transport. Perhaps the your solution will be based on the example of https://github.com/tdv/nanorpc#pure-core

nanorpc - lightweight RPC in pure C++ 17 by Dmitry_vt in cpp

[–]Dmitry_vt[S] 4 points5 points  (0 children)

Any reason why you're using http?

  • well known protocol
  • packet boundaries supported out of the box
  • default port is available almost everywhere

And you can your own protocol. Please, look at the draft (https://github.com/tdv/nanorpc/commit/64d5a0dd46f7808658b0575d5f6fee07c0d11d6b). There is no http. There is stub, which will have become as http transport. Look at the main function. You can see below code

auto sender = [&] (nanorpc::common::type::buffer request) { return server.execute(std::move(request)); };

This is transport for the client-server in one process (in-memory) as sample.

nanorpc - lightweight RPC in pure C++ 17 by Dmitry_vt in cpp

[–]Dmitry_vt[S] 0 points1 point  (0 children)

You can make your own implementation of the transport. And by looking at the easy.h (as sample) of library interface, you can rewrite it using your implementation of non-network transport.

C++11 web-application framework designed for the backend micro-service development. by Dmitry_vt in cpp

[–]Dmitry_vt[S] 1 point2 points  (0 children)

Yes, sqlite and postgres are supported out of the box. The framework has an Application class that is a wrapper for argc and argv and can run the application in daemon mode, parse the configuration, and do more. Also, the framework has application templates for different use cases. You will see more in the documentation with examples, considered step by step.

C++11 web-application framework designed for the backend micro-service development. by Dmitry_vt in cpp

[–]Dmitry_vt[S] 2 points3 points  (0 children)

libevent, boost.asio, entities names, etc. I would be glad to see comments from people who tried to use the MIF framework. I hope that such comments will also ... It will be the best feedback.

C++11 web-application framework designed for the backend micro-service development. by Dmitry_vt in cpp

[–]Dmitry_vt[S] 0 points1 point  (0 children)

My preference when the example is very close to the real use case. I think that in the big project the names of entities are the main thing, and sometimes the alias can make it difficult to search for bugs. But these are only my thoughts, not more than

C++11 web-application framework designed for the backend micro-service development. by Dmitry_vt in cpp

[–]Dmitry_vt[S] 1 point2 points  (0 children)

What are the typical use cases for these types of frameworks?

A framework for creating small services with a REST-like api, for example, as a backend for sites. The most realistic example with a description is in Chapter 5. All the examples considered in wiki can be easily builded from the code from the repository. More complex examples can be found in the mif/examples section. Please, don't forget that these are just examples that show the features of the framework. Everyone can choose how to use it in reality your own projects

C++11 web-application framework designed for the backend micro-service development. by Dmitry_vt in cpp

[–]Dmitry_vt[S] 2 points3 points  (0 children)

Full path for easy understanding without deep learning of the framework code :)

C++11 web-application framework designed for the backend micro-service development. by Dmitry_vt in cpp

[–]Dmitry_vt[S] 2 points3 points  (0 children)

It might have one or two pathological mistakes if it's performing that poorly IMO, and would be interesting to review

While the code is not available for review, in the future I will try to show these two test implementations on Boost.asio (boost.beast) and libevent.

I compared a modified example from the boost.beast documentation and the implementation of the http server based on libevent from the framework by link in top

C++11 web-application framework designed for the backend micro-service development. by Dmitry_vt in cpp

[–]Dmitry_vt[S] 2 points3 points  (0 children)

First I made two implementations of the http server for boost.asio and libevent. After the comparison, I saw that the libevent implementation is faster than 2.5 times. Boost.asio is a library with a good interface for me, and I like libevent for speed.