matt-42 / silicon

A high performance, middleware oriented C++14 http web framework please use matt-42/lithium instead
http://siliconframework.org
MIT License
1.72k stars 138 forks source link

Custom Paths #45

Closed GuacheSuede closed 7 years ago

GuacheSuede commented 7 years ago

Hi Matt, how does one go about writing custom paths such as /hello/John and getting John as a param ?

Thank You

matt-42 commented 7 years ago

Here is a small API doing what you want: auto hello_api = http_api( GET / _hello / _name[std::string()] = [] (auto params) { return "hello " + params.name; } );

Does it answer your question ?

GuacheSuede commented 7 years ago

Thank you Matt, yes it does.

Quick question, i notice alot of commented out code in lwan.hh, what does that mean ? Also, lwan is no longer compatible with Silicon due to breaking changes, mass renames of lwan variables

matt-42 commented 7 years ago

It's true that I did not work on it since quite some time. I'll revamp it if you need it. In the meantime, you can use the mhd backend which is more stable and up to date.

GuacheSuede commented 7 years ago

Alright sure, i made some changes to the official lwan repo(merged) to fix some breaking changes, you are mostly left to deal with variable renames.

Would you consider officially supporting the lwan backend, on the TechEmpower benchmark, it trumps every other webserver including mhd, lwan has a good history of commits and active ?

matt-42 commented 7 years ago

Lwan compile with my last commit 5737203892094ed2685e1bd9718ddf189d6afb61, and with another C++ fix I've submitted to Lwan's master.

I included LWAN in the techempower 13th round : https://www.techempower.com/benchmarks/#section=data-r13&hw=ph&test=db&l=4fs3jz It was able to better handle the heavy load of the plaintext example (up to 16k connections), but it was pretty much on par with MHD on the other tests.

GuacheSuede commented 7 years ago

@matt-42 Thank you for the changes, made some further compilation changes

matt-42 commented 7 years ago

Keep in mind that POST requests does not work anymore. I don't know yet if it's due to silicon or lwan.

GuacheSuede commented 7 years ago

@matt-42 I am testing lwan without Silicon now, POSTS definitely works on LWAN, using your pull request. Do inform me if you need any help on the lwan side :)