by x0054 on 4/10/21, 3:51 PM with 2 comments
Basically think Transmission or Resilio Sync, both of which are written in C. I am pretty good with C, but would rather try something new while working on this side project.
My priorities are:
1. Small Compiled binary size. 5-20mb is reasonable, larger is NOT.
2. Dependency free binary, statically linked and self contained.
3. Low memory footprint.
4. Scalable to large number of clients.
I would love to work either in Swift or TypeScript, but those don't appear to be viable options. Please correct me if I am wrong, especially when it comes to Swift.
Go and Rust are my top contenders at the moment. Any other languages I should consider? Any specific stacks that you liked in the past?
PS: I am well aware of many ways to package JS code, Python code, etc, but those options are neither dependency free in practice or particularly size and memory efficient.
by aszen on 4/10/21, 4:57 PM
Haskell has few web frameworks which are worth taking a look.
Needless to say C++ may also be an option given your familiarity with C.
Other newer contenders are Crystal and Nim. Both look promising but are still young languages.
DLang and Zig are more known for systems programming but like rust can also be used for web programming.
For a go like language also take a look Vlang (which has a lot of stuff built-in, web framework, orm, testing, ...)
I think all of these languages fit your requirements, as you can see there's quite a lot of choice these days. As usual there is no right or wrong way to go. (:
by sylvain_kerkour on 4/10/21, 7:40 PM
The big plus is that you can even configure Go to automate TLS certs[1].
[0] https://blog.golang.org/go1.16
[1] https://github.com/skerkour/bloom-legacy/blob/27908e44dd45b3...