Lacewing
Languages and libraries
networking library
SHOW HN2011
How HN took it
4 positive, 14 neutral or asking, 1 mixed, 6 critical, out of 25 comments about the project. Thread score -0.04.
Execution: 2 for, 5 againstIdea: 0 for, 1 against
The thread, comment by comment
Each row is a top-level comment and its replies, in HN's order. Select a cell to open that comment on HN.
positive neutral or mixed critical about another commenter or something else the maker
What HN said
What people liked
Clean, readable, well-laid-out code
From 2 comments
Wow. Your code is a joy to read. Really clean and well-laid-out.
munificent on HNAwesome way of doing assertions! https://github.com/udp/lacewing/blob/f1c6386bf33f470ff61b275cf408282781625018/src/Common.h#L79 I remember I used to do something like that in C++…
epidemian on HN
Cross-platform support on Windows, OS X and Linux
From 1 comment
Yes, I've used it on both Windows and OS X, as well as Linux and FreeBSD servers. It uses IOCP on Windows and kqueue on OS X. There's a project file in the 'msvc' folder which…
udp on HN
Objections
Security issues: unchecked lengths, path traversal, cookie header injection
From 3 comments
+12? +8? ``` char * NameDecoded = (char *) malloc(strlen(Name) + 12); char * ValueDecoded = (char *) malloc(strlen(Value) + 12); if(!URLDecode(Name, NameDecoded, strlen(Name) +…
tptacek on HNSmall potatoes but this: ``` for(char * i = this->URL; *i; ++ i) { if(i[0] == '.' && i[1] == '.' && (i[2] == '/' || i[2] == '\\')) ``` misses the case where the double dot is not…
zwp on HNBigger potatoes: output sanitization? Eg only whitespace is trimmed from cookies, then in webserver.Outgoing.cc: ``` Socket << "\r\nSet-Cookie: " << Current->Key << "=" <<…
zwp on HN
Not well tested; not safe for production use
From 1 comment
Mongoose is only selecting for the listening socket, so the comparison there isn't particularly valid. Mongoose scales as well as threads on its platform scale. Mongoose also…
tptacek on HN
Ad-hoc HTTP parser
From 1 comment
In src/webserver/Webserver.Incoming.cc you have an ad-hoc HTTP parser that internally buffers partial request data and does some questionable things like recursing on each…
sigil on HN
Requests
Use a standard HTTP parser library
From 1 comment
In src/webserver/Webserver.Incoming.cc you have an ad-hoc HTTP parser that internally buffers partial request data and does some questionable things like recursing on each…
sigil on HN
Drop multithreading in favour of single-threaded reactor
From 1 comment
I honestly believe that you should avoid multithread support and instead focus on the current single threaded reactor pattern. Any developer found easily just attach something…
udoprog on HN
Windows and Mac build support
From 1 comment
Thanks for sharing! I was actually looking for a lightweight embeddable C/C++ web server not long ago, perhaps this will fit my needs. Only thing I'm wondering about is does it…
dkersten on HN
Switch build system to SCons or plain Makefile
From 2 comments
Have you considered using Scons as your build system, instead of Automake?
misham on HNI think a question people should often ask themselves is: Have you considered if you need a build system at all? Is this something I can properly build with a plain old Makefile?
jff on HN
Questions
Can it be embedded in an iOS app?
From 1 comment
what about embedding in an iOS app? Any thoughts on this and if Apple will let is pass?
jason_slack on HN
How does it compare to Mongoose, libmicrohttpd or cpp-netlib?
From 2 comments
Encouraging to see more development in this space. Thanks. I'm curious, though. How do you think this compares with the mongoose (http://code.google.com/p/mongoose/) project.…
k_shehadeh on HNThanks for sharing. How does the basic functionality compare with, say, http://www.gnu.org/software/libmicrohttpd/ or http://cpp-netlib.github.com/ ? (the latter looks like it…
mellery451 on HN
Alternatives named
Mongoose
From 1 comment
Encouraging to see more development in this space. Thanks. I'm curious, though. How do you think this compares with the mongoose (http://code.google.com/p/mongoose/) project.…
k_shehadeh on HN
libevent
From 1 comment
Yes, iOS has working kqueue. I have some reason to believe you can get libevent working on iOS with minimal drama; I think there's at least one app that embeds it. Which, by the…
tptacek on HN
libebb
From 1 comment
You can also check out libebb - http://tinyclouds.org/libebb/
luckystrike on HN
libmicrohttpd
From 1 comment
Thanks for sharing. How does the basic functionality compare with, say, http://www.gnu.org/software/libmicrohttpd/ or http://cpp-netlib.github.com/ ? (the latter looks like it…
mellery451 on HN
cpp-netlib
From 1 comment
Thanks for sharing. How does the basic functionality compare with, say, http://www.gnu.org/software/libmicrohttpd/ or http://cpp-netlib.github.com/ ? (the latter looks like it…
mellery451 on HN