profile
viewpoint
Matthieu Garrigues matt-42 Paris, France

matt-42/silicon 1704

A high performance, middleware oriented C++14 http web framework please use matt-42/lithium instead

matt-42/iod 727

Meta programming utilities for C++14. Merged in matt-42/lithium

matt-42/vpp 644

Video++, a C++14 high performance video and image processing library.

matt-42/lithium 377

Easy to use C++17 HTTP Server with no compromise on performances. https://matt-42.github.io/lithium

matt-42/moustique 129

C++14 high performance non-blocking network IO (based on epoll + boost.context)

matt-42/cuimg 63

A C++11 Image and Video Processing Library

matt-42/dige 9

C++ toolbox designed for visual and interactive debugging

matt-42/video-tracking-android 8

A C++ real time semi dense point tracking written for android.

matt-42/awesome-cpp 7

A curated list of awesome C/C++ frameworks, libraries, resources, and shiny things. Inspired by awesome-... stuff.

matt-42/GPOF 4

Generic Parameter Optimization Framework

push eventmatt-42/FrameworkBenchmarks

Matthieu Garrigues

commit sha 8f611b48df05e43965e337433d74bd3d89d578c5

Lithium update.

view details

push time in 43 minutes

push eventmatt-42/lithium

Matthieu Garrigues

commit sha 8d5dd3f53b928efcab3dccd01d551f78f2df2828

Fix pgsql bug.

view details

Matthieu Garrigues

commit sha 17737fb9473e0111d5ab235a13b6a143b5ca1673

Fix pgsql bug.

view details

push time in an hour

create barnchmatt-42/FrameworkBenchmarks

branch : lithium-upgrade16

created branch time in 2 hours

PR opened TechEmpower/FrameworkBenchmarks

Lithium update.

<!-- Thank you for submitting to the TechEmpower Framework Benchmarks!

If you are submitting a new framework, please make sure that you add the appropriate line in the .travis.yml file for proper integration testing. Also please make sure that an appropriate README.md is added in your framework directory with information about the framework and a link to its homepage and documentation.

For new frameworks, please do not include source code that isn't required for the benchmarks.

Some examples of files that should not be included:

  • Functional tests, such as JUnit tests in a src/test directory in Java frameworks.
  • Startup scripts for launching the framework's application directly without going through TFB.
  • Local development configs used on the developer's workstation but not in TFB.

If you are editing an existing test, please update the README.md for that test where appropriate. -->

+14 -12

0 comment

6 changed files

pr created time in 2 hours

push eventmatt-42/lithium

Matthieu Garrigues

commit sha 5b0014f6610bb442c3b783aa36977674cb6a9909

Fix error handling.

view details

push time in 2 hours

push eventmatt-42/lithium

Matthieu Garrigues

commit sha fac5aec6f7b3c8021186a15b0a5ee27081807cd2

Fix headers.

view details

push time in 2 hours

push eventmatt-42/lithium

Matthieu Garrigues

commit sha d104663b3e59fe794af86b02f33887833e313e25

Fix headers.

view details

push time in 2 hours

push eventmatt-42/lithium

Matthieu Garrigues

commit sha 2e3340ae4674c2f9db620b48169433e8d0f294da

Fix optimization.

view details

push time in 2 hours

push eventmatt-42/lithium

Matthieu Garrigues

commit sha 8eb42ceca07d16cf2d572cf04c2c67a32e3a732d

Fix optimization.

view details

push time in 2 hours

push eventmatt-42/lithium

Matthieu Garrigues

commit sha bb87db7b040dd1c2ff4bb9046c53c77fe2505b13

Update to last pgbatch patch.

view details

Matthieu Garrigues

commit sha 998e605da83f8a5badcf012d0d0b7446652843cc

Update to last pgbatch patch.

view details

Matthieu Garrigues

commit sha 8032668aa3851ec7c31e7b802805afa4b9e85050

Optimizations.

view details

push time in 2 hours

push eventmatt-42/lithium

Matthieu Garrigues

commit sha a7938980c75b2419b5c92f950d922291a145ead7

Add time

view details

push time in 3 hours

push eventmatt-42/lithium

Matthieu Garrigues

commit sha 7fd1e991f381695e6025f6a8cf28ab3835701d2a

Json encode optimizations.

view details

push time in 3 hours

push eventmatt-42/lithium

Matthieu Garrigues

commit sha c8cc29cf2d87e3e7d4a6f75307143fddd4ffa55f

Optimize http parser.

view details

push time in 4 hours

push eventmatt-42/lithium

Matthieu Garrigues

commit sha daa5047093a392dc22509cc2c84faff5b590c7cf

search background.

view details

push time in 6 hours

push eventmatt-42/lithium

Matthieu Garrigues

commit sha 1bbd762de08cc86b13345c3e9859e84109ebd647

Fix thanks.

view details

push time in 8 hours

push eventmatt-42/lithium

Matthieu Garrigues

commit sha c85bdbb7f1220262ecdf27b2df7249da1900e979

Fix hovering of search results.

view details

push time in 8 hours

push eventmatt-42/lithium

Matthieu Garrigues

commit sha 8b1389d09afedf0a1d14276dcf4729a6c271b86f

Fix the background.

view details

push time in 9 hours

push eventmatt-42/lithium

Matthieu Garrigues

commit sha 0d08a834a80058525944e507fb284efdf2caf259

Code highlighting in search snippets.

view details

push time in 9 hours

push eventmatt-42/lithium

Matthieu Garrigues

commit sha 2f8d4a9cfbf09518cb73ac9033c421105b574136

Docs

view details

push time in 11 hours

push eventmatt-42/lithium

Matthieu Garrigues

commit sha 179cb872e2d6ac1e0bfc3a7113a6c70d4d713e88

Cleanup.

view details

push time in a day

push eventmatt-42/lithium

Matthieu Garrigues

commit sha 878211f92fd1284061fb87d6a7e074ae7ccb722a

Menu improvements.

view details

push time in a day

push eventmatt-42/lithium

Matthieu Garrigues

commit sha ebd1f1f33226963af201419cbce321b3f2c4ab50

Fix link.

view details

push time in a day

issue commentmatt-42/lithium

Compile-time routes

Route< "blog", "posts", Capture<int> > is better yes.

For named parameters, we can use symbols: Route< "blog", "posts", Capture<s::id, int>>

I'm thinking about a way to integrate this to the framework as an additional way to declare routes. What do you think of this ?

using singlePostRoute = Route<"blog", "posts", Capture<s::id, int>>;
api.get<singlePostRoute>([&](li::http_request& request, li::http_response& response) {
  auto url_params = request.url_parameters<singlePostRoute>();
  // do something with url_params.id
});
stiff

comment created time in a day

issue openedmatt-42/lithium

Mysql batching/pipelining

Support mysql query pipelining. It is still a feature request in the MariaDB jira. Let's wait until it is implemented. More info here: https://jira.mariadb.org/browse/CONC-478

created time in 2 days

issue commentmatt-42/lithium

Compile-time routes

Hi Stiff

Thanks for your gist. It is similar to what I have implemented in another webframework : http://siliconframework.org/docs/apis.html but I dropped it for simplicity.

It has one advantage that the current version:

  • it declares the place of the url parameter and it's type in the same place.

The current url parameter reading are also typed checked but the types are provided when reading parameters:

// If the route is
"/blog/post/{{id}}"
[..]
// and if the handler read parameters as follow
auto params = url_parameters(s::id = int())
// this will throw if the targeter url does not provide a valid int.

However, if you do a typo in {{id}} or in s::id, the handler is invalid but still compiles.

Your example has one disadvantage over the current version: it is not using named parameters, so if your handler takes 4 integers as parameters it won't be trivial to remember which one is what in the handler. I guess this could be fixed using metamaps.

Another disadvantage is the readability of the code. This makes defining a route a lot more complex than just writing a plain strings, while not really providing a big advantage: in the current version, if a very simple test would fail and report any mismatch between s::id and {{id}}.

This would also require a lots of change in the core of the framework (including lots of templates, slowing down compilation): right now, all handlers have the same type. It we want to forward the static types of the route to the handler, we would have to switch to templated handlers, which would contaminate lots of the code.

Silicon http://siliconframework.org was actually using this approach but was 5x slower to compile and it's codebase was more complex. So I when I rewrote it, I decided to strip down all the complex meta programming stuff to get something that compiles faster and with a code base accessible to more c++ devs.

stiff

comment created time in 2 days

push eventmatt-42/lithium

Matthieu Garrigues

commit sha 556367d572324da8247bc47c1f1c06eb8f4068b4

docs.

view details

push time in 2 days

push eventmatt-42/lithium

Matthieu Garrigues

commit sha a9ad26ea823c55ddd487d8f7ebdc7745f609021b

Links.

view details

push time in 2 days

push eventmatt-42/lithium

Matthieu Garrigues

commit sha 957ab10960097f99cfafa443b72698d59d190a66

Typy.

view details

push time in 2 days

push eventmatt-42/lithium

Matthieu Garrigues

commit sha 29f7dd58b016c2b64942c911421a9019debb48db

Fix logo url.

view details

push time in 2 days

push eventmatt-42/lithium

Matthieu Garrigues

commit sha 02a88e3324bc037fcb5f5d94c2fb2218492cbf24

typos.

view details

push time in 2 days

push eventmatt-42/lithium

Matthieu Garrigues

commit sha 2353e73c5d35a698a13c3a952813977b84aa7ee1

More intro.

view details

push time in 2 days

push eventmatt-42/lithium

Matthieu Garrigues

commit sha f8ed112d7e5764eda33af9a28a2221813d5d93b5

Fix.

view details

push time in 2 days

push eventmatt-42/lithium

Matthieu Garrigues

commit sha 43653a8777437abe8b5a3454d72c06f53c2c424a

Code warping.

view details

push time in 2 days

push eventmatt-42/lithium

Matthieu Garrigues

commit sha 4f72c74a3ffb971099411c3ba12a81741037ec11

Responsive.

view details

push time in 2 days

push eventmatt-42/lithium

Matthieu Garrigues

commit sha 46022e61744916bed0033df80bde63d142e3efa8

menu button on the screen left.

view details

push time in 2 days

push eventmatt-42/lithium

Matthieu Garrigues

commit sha 5f3dd6167ceece2608b47cae7d5118c9797e36c8

Fix search.

view details

Matthieu Garrigues

commit sha 443942df3410401c002ad22161095e061d542967

Open the menu at load.

view details

push time in 2 days

push eventmatt-42/lithium

Matthieu Garrigues

commit sha 3a76180a855a9b194807e58b86c324820f1cd252

Remove old file.

view details

push time in 2 days

push eventmatt-42/lithium

Matthieu Garrigues

commit sha 2bd927de56dca8375ba18c9183fd0d0e3485dfb2

Missing deps.

view details

push time in 2 days

push eventmatt-42/lithium

Matthieu Garrigues

commit sha e57ac32bdf073a1e85221321bf5c405d8ea0c26a

Light mode / dark mode

view details

Matthieu Garrigues

commit sha f0ec74c2d57527cf1671c559727fd6738bcba0eb

New search.

view details

Matthieu Garrigues

commit sha 2fec1450cef43e89e622886d6ec7fb00c4db7f30

Search scroll.

view details

Matthieu Garrigues

commit sha 4962c7a5b61d7fe705834134464f7b541c254ca1

Search click.

view details

Matthieu Garrigues

commit sha e55e39f975c2d0ba72f9f7ac37b88f3a554039b0

Mobile mode.

view details

push time in 2 days

push eventmatt-42/lithium

Matthieu Garrigues

commit sha d3b9686f7964a5b6e5c99626b371a8b75b9b2851

Logo size.

view details

push time in 3 days

push eventmatt-42/lithium

Matthieu Garrigues

commit sha e46dfd0aa49ab67fc7aa0c17fb932abdf33bee7f

Links to the new documentation website.

view details

push time in 3 days

push eventmatt-42/lithium

Matthieu Garrigues

commit sha 8ff57351580fd382fc7f58b79fbe9cf9c4e43847

Foldable menu.

view details

push time in 3 days

push eventmatt-42/lithium

Matthieu Garrigues

commit sha 4552375369d81ee7d5db2479c89aa2df5b8e1e55

Typo.

view details

push time in 3 days

push eventmatt-42/lithium

Matthieu Garrigues

commit sha 055dcd42c00cfd1db59b4e5d14aea2686dba81b7

Add introduction. Continue docs.

view details

push time in 3 days

push eventmatt-42/lithium

Matthieu Garrigues

commit sha d7e3aa916a2d6f0abbe8bb5f4c943e76c109e3ce

Scroll to hash after page reload.

view details

push time in 3 days

push eventmatt-42/lithium

Matthieu Garrigues

commit sha a50020aff0880cf99b3b62ac700929719d30b855

Add metamap_t helper. Fix symbol generation for xxx_t, sql doc.

view details

push time in 3 days

issue openedmatt-42/lithium

Test sqlite overlaping transactions.

created time in 5 days

push eventmatt-42/lithium

Matthieu Garrigues

commit sha d97ffff0d37d0458fe9af330cda0fd9c40aa88b4

Cleanup.

view details

push time in 6 days

push eventmatt-42/lithium

Matthieu Garrigues

commit sha 9415ae75ed379f1aa10afdee2c04294b3e7c6368

Json Documentation.

view details

push time in 6 days

push eventmatt-42/lithium

Matthieu Garrigues

commit sha ccf4af40c04d03374e3a8e8e28f960a8f2605f24

Focus search on /. cleanup log.

view details

push time in 7 days

push eventmatt-42/lithium

Matthieu Garrigues

commit sha d8f19d31080095c4b6ef38e7693953aa5a1146cb

Documentation.

view details

push time in 7 days

push eventmatt-42/lithium

Matthieu Garrigues

commit sha 0426f42e45a571a4f33b5e39e662c82bd834d23d

Fix search snippets.

view details

push time in 7 days

push eventmatt-42/lithium

Matthieu Garrigues

commit sha ca07ca6af4ee1bc597f3ee158b7ced423a4476ed

Smarter search.

view details

push time in 7 days

push eventmatt-42/lithium

Matthieu Garrigues

commit sha d3d5ee812364335897ec14cd700ad8d1fb9598e6

Fix twitter button

view details

push time in 8 days

push eventmatt-42/lithium

Matthieu Garrigues

commit sha 1d380d2ddcac6eccf509f5004323b3ce8cc083ef

Remove spaces.

view details

push time in 8 days

push eventmatt-42/lithium

Matthieu Garrigues

commit sha 1a4a72bd3cd266817fb72cad145c7f1ab9998fad

More docs.

view details

push time in 8 days

push eventmatt-42/lithium

Matthieu Garrigues

commit sha fe8b3c44a66269252aa5f28276e9a034829598d4

Update docs.

view details

push time in 8 days

startedmui-org/material-ui

started time in 8 days

push eventmatt-42/lithium

Matthieu Garrigues

commit sha a0f38ffcb20fd00b76ef5ed764f7e87b827633b9

Logo size.

view details

push time in 8 days

push eventmatt-42/lithium

Matthieu Garrigues

commit sha 4317c9c62f5ecf62074a7d3d5960ddd10baaad5e

Focus search.

view details

push time in 9 days

push eventmatt-42/lithium

Matthieu Garrigues

commit sha 53e5b6054d2ddc5e46fcb5c316fd3fd0eb45ad5d

Color on search..

view details

push time in 9 days

push eventmatt-42/lithium

Matthieu Garrigues

commit sha 8a8883967d9386dab78d0a2ab582c2de2e27f500

Simple search label.

view details

push time in 9 days

push eventmatt-42/lithium

Matthieu Garrigues

commit sha 7dd4dd174217a3252766ee9dd14305e67f9b88a0

Sort search results.

view details

push time in 9 days

push eventmatt-42/lithium

Matthieu Garrigues

commit sha a02bc65e9a0d8496ef310c06fa30078e7618ba83

More doc.

view details

push time in 9 days

push eventmatt-42/lithium

Matthieu Garrigues

commit sha 84ef7ad9a5c1c4c0db49739f8f5bd8e5dd784479

More doc.

view details

push time in 9 days

push eventmatt-42/lithium

Matthieu Garrigues

commit sha ee111f196ce985f8f51f9044c085f4e5aaf08190

More doc.

view details

push time in 9 days

push eventmatt-42/lithium

Matthieu Garrigues

commit sha 7baa5bc4dec11c2a00266ca6c1410641931a63e8

More doc.

view details

push time in 9 days

push eventmatt-42/lithium

Matthieu Garrigues

commit sha e31a434cca1e996a0424997ce9133f6aa72c2333

More doc.

view details

push time in 9 days

push eventmatt-42/lithium

Matthieu Garrigues

commit sha 03c0d48cea696a545ab5cb567a4ebc3766697d89

More doc.

view details

push time in 9 days

push eventmatt-42/lithium

Matthieu Garrigues

commit sha f2285e31d0bfc68708ba446d65992eb023897577

More doc.

view details

push time in 9 days

push eventmatt-42/lithium

Matthieu Garrigues

commit sha 908bb7639c3d6be086b2ac0bbc9c33b41d3cf9da

More doc.

view details

push time in 9 days

push eventmatt-42/lithium

Matthieu Garrigues

commit sha 742e90bca366b240a7a5063bfcd3caef68ad05f4

Links.

view details

push time in 9 days

issue openedmatt-42/lithium

MongoDB

Make sure using MongoDB with Lithium is feasible and add a MongoDB ORM implementation.

created time in 10 days

push eventmatt-42/lithium

Matthieu Garrigues

commit sha 25cce2a2daf483252fbdbd3791e846a0dbe2e8a0

Fix docs compilation.

view details

push time in 10 days

push eventmatt-42/lithium

Matthieu Garrigues

commit sha 2b6461613f25d785e28ad08a8c8c5104ea083fd2

Fix docs compilation.

view details

push time in 10 days

push eventmatt-42/lithium

Matthieu Garrigues

commit sha a32aeebf5d160b63da512f37fcd1b7868a271604

Fix docs compilation.

view details

push time in 10 days

push eventmatt-42/lithium

Matthieu Garrigues

commit sha c79baf5009879e77b4c2aca3816146b2ec59d5f6

Fix docs compilation.

view details

push time in 10 days

push eventmatt-42/lithium

Matthieu Garrigues

commit sha 0583a7cdc22a6cf743cffe986e22e6c3414de745

Logo link.

view details

push time in 10 days

push eventmatt-42/lithium

Matthieu Garrigues

commit sha b9650f505ef5b53593878a5080ef336113cab7c3

Add footer.

view details

push time in 10 days

push eventmatt-42/lithium

Matthieu Garrigues

commit sha 6f111b7182f94c2d1cac1ebda4c7a420b4e43c75

Fixes.

view details

push time in 10 days

push eventmatt-42/lithium

Matthieu Garrigues

commit sha ac8e6ba6a62f6e03996b1dad8553276ad96a7c91

Fix nav.

view details

push time in 10 days

push eventmatt-42/lithium

Matthieu Garrigues

commit sha d496909a510ea7816f35a6c158ecfc636ead9e23

Cleanup.

view details

push time in 10 days

push eventmatt-42/lithium

Matthieu Garrigues

commit sha e7ac5527e6b6826dfd4751e2852a710d8f39844f

Fix nav and fix lags.

view details

push time in 10 days

push eventmatt-42/lithium

Matthieu Garrigues

commit sha 7b735b1c601b177208c07b68c18f499833b3ef8a

Fix url formatting.

view details

push time in 10 days

push eventmatt-42/lithium

Matthieu Garrigues

commit sha 96f2c2c0d7bac98d593db26e5e62a857a9ef4d52

Fix search snippets.

view details

push time in 10 days

push eventmatt-42/lithium

Matthieu Garrigues

commit sha 17c6f14e722cc16dbdbf0183e5f788c08d98d3ac

Try to fix nav.

view details

push time in 10 days

push eventmatt-42/lithium

Matthieu Garrigues

commit sha 86cad7be81292a01420ee896e0bf9104c999e0c7

Try to fix nav.

view details

push time in 10 days

push eventmatt-42/lithium

Matthieu Garrigues

commit sha 18f0e57750c795bb66f5a5e1cba8ba40b5fb4fe9

Try to fix nav.

view details

push time in 10 days

push eventmatt-42/lithium

Matthieu Garrigues

commit sha 3f0b02a7d4651fb8659b0817c249fa387b5efab9

Styling.

view details

push time in 10 days

push eventmatt-42/lithium

Matthieu Garrigues

commit sha 0d5d1983e35b4a0b989b5c61a343241c5f2bb40f

More docs.

view details

push time in 10 days

push eventmatt-42/lithium

Matthieu Garrigues

commit sha 123f78dbb3bd9bfa78f45ed496a58966680a5b20

More docs.

view details

push time in 10 days

push eventmatt-42/lithium

Matthieu Garrigues

commit sha d9befdaa1588db5d585d8b5b3c2ce5dfdce5e60d

More docs.

view details

push time in 10 days

push eventmatt-42/lithium

Matthieu Garrigues

commit sha ae3b8950fee75d09bdd6a0ac4b7c31061b56953b

Docs

view details

push time in 10 days

push eventmatt-42/lithium

Matthieu Garrigues

commit sha 6560c9bea8173f7428053198998b69f40ce8eace

Docs

view details

push time in 10 days

push eventmatt-42/lithium

Matthieu Garrigues

commit sha 082c11f9a8bef9c7e1e57018a5ebe14bfb64b9cd

Docs

view details

push time in 10 days

push eventmatt-42/lithium

Matthieu Garrigues

commit sha a8d4d0bd11ee0d3e884496337d018a084d6bb01e

Docs

view details

push time in 10 days

push eventmatt-42/lithium

Matthieu Garrigues

commit sha c82a1210f3316eef2d5e37db227046a70745cb6b

Docs

view details

push time in 10 days

push eventmatt-42/lithium

Matthieu Garrigues

commit sha 5ebae36aec578fb41772559e96933b55477bb495

Docs

view details

push time in 10 days

push eventmatt-42/lithium

Matthieu Garrigues

commit sha 212ddf10b9a08557a3f763bbbf05899f9e59cab7

Docs

view details

push time in 10 days

push eventmatt-42/lithium

Matthieu Garrigues

commit sha 28e261b912031c39a59a9e9dca55cc82a26fc1e6

Rename http_backend to http_server.

view details

Matthieu Garrigues

commit sha d1af315ff230e7d956f6e6c6e341cc045e6fdafa

Rename http_backend.

view details

push time in 10 days

more