Self-Contained Pure-Go Web Server with Lua, MD, HTTP/2, QUIC, Redis Support
1–10 of 64 posts
Re: Self-Contained Pure-Go Web Server with Lua, MD, HTTP/2, QUIC, Redis Support
#2> All in one small self-contained executable.
Size of algernon executable: 24.4 MiB
Size of nginx-full executable: 1.1 MiB
Size of apache2 executable: 648K
Re: Self-Contained Pure-Go Web Server with Lua, MD, HTTP/2, QUIC, Redis Support
#3This is quite impressive, but this claim is a bit wrong: > All in one small self-contained executable. Size of algernon executable: 24.4 MiB Size of nginx-full executable: 1.1 MiB Size of apache2 executable: 648K
In fact, the readme of this project is really thorough!
Re: Self-Contained Pure-Go Web Server with Lua, MD, HTTP/2, QUIC, Redis Support
#4This is quite impressive, but this claim is a bit wrong: > All in one small self-contained executable. Size of algernon executable: 24.4 MiB Size of nginx-full executable: 1.1 MiB Size of apache2 executable: 648K
Can you run ldd on all of these and then report the combined size for each binary+libraries?
Re: Self-Contained Pure-Go Web Server with Lua, MD, HTTP/2, QUIC, Redis Support
#5This is quite impressive, but this claim is a bit wrong: > All in one small self-contained executable. Size of algernon executable: 24.4 MiB Size of nginx-full executable: 1.1 MiB Size of apache2 executable: 648K
A big part is almost certainly the difference between dynamic and static linking. Can you run ldd on all of these and then report the combined size for each binary+libraries?
$ echo $((`ldd /usr/sbin/apache2 | cut -d">" -f 2 | sed "s/(.*$//;s/ //" | xargs du -L | cut -f 1 | sed "s/$/+/" | xargs echo` 0))
3200
So 3.2 MB of shared library dependencies. 1.8 MB just being the libc which is almost guaranteed to be used by a different program already.
Re: Self-Contained Pure-Go Web Server with Lua, MD, HTTP/2, QUIC, Redis Support
#6This is quite impressive, but this claim is a bit wrong: > All in one small self-contained executable. Size of algernon executable: 24.4 MiB Size of nginx-full executable: 1.1 MiB Size of apache2 executable: 648K
If that's the main criticism you have of the project, I'd say that's pretty good. In fact, the readme of this project is really thorough!
Re: Self-Contained Pure-Go Web Server with Lua, MD, HTTP/2, QUIC, Redis Support
#7This is quite impressive, but this claim is a bit wrong: > All in one small self-contained executable. Size of algernon executable: 24.4 MiB Size of nginx-full executable: 1.1 MiB Size of apache2 executable: 648K
Re: Self-Contained Pure-Go Web Server with Lua, MD, HTTP/2, QUIC, Redis Support
#8That's interesting. Is that a common optimization? I hadn't heard of any other web server doing that.
Re: Self-Contained Pure-Go Web Server with Lua, MD, HTTP/2, QUIC, Redis Support
#9This is quite impressive, but this claim is a bit wrong: > All in one small self-contained executable. Size of algernon executable: 24.4 MiB Size of nginx-full executable: 1.1 MiB Size of apache2 executable: 648K
Re: Self-Contained Pure-Go Web Server with Lua, MD, HTTP/2, QUIC, Redis Support
#10"Files that are sent to the client are compressed with gzip, unless they are under 4096 bytes." That's interesting. Is that a common optimization? I hadn't heard of any other web server doing that.
For example, https://github.com/expressjs/compression/blob/dd5055dc92fdea...