ohler55 / agoo-c

Agoo webserver in C.
MIT License
147 stars 16 forks source link

Maybe consider creating agoo for Crystal? #8

Open vlazar opened 4 years ago

vlazar commented 4 years ago

Hi Peter, huge fan of you high perf projects.

So there is agoo for Ruby and Crystal which you most likely already heard of is very similar to Ruby in look and feel, but is statically typed compiled language and is much much faster. It also has a concurrency model similar to Go.

Since agoo has so much focus on performance, I think a version for Crystal would make a lot of sense. I understand Crystal is not very popular right now, but it's anecdotally very stable when running in production, uses little memory and is really fast. Also creating C bindings is quite easy and zero-cost unlike Ruby.

There is a C-BINDINGS example on home page Crystal More details on C bindings https://crystal-lang.org/reference/syntax_and_semantics/c_bindings/

Here is how Crystal perform against some of the languages https://www.techempower.com/benchmarks/#section=data-r18&hw=ph&test=json&l=ytklq6-f

ohler55 commented 4 years ago

I have looked at Crystal and even written some experimental code. It is different enough from Ruby that it would require a different code base. Not saying it isn't possible but I've got enough features I want to add to Agoo first before I can consider Crystal.

vlazar commented 4 years ago

It is different enough from Ruby that it would require a different code base.

Different code base as in it will require changes to agoo-c itself, or it will just need a separate repo for Crystal bindings similar to https://github.com/ohler55/agoo which is bindings for Ruby, right?

ohler55 commented 4 years ago

Right, the core which is mostly agoo-c should remain the same.