One thing that puts me off from using kore is the degree of magic that seems to come with being a “framework”. No main function. An obscure documentation system. A baked-in build system. A baked-in web server. That’s a lot of duplication of mature, well-known tools—make, httpd, and so on—with none of them being trivial at all. I guess C to me is synonymous with UNIX, and frameworks like this go against what UNIX means: manpages, doing a small thing well and fitting into a larger framework, etc. It would be nice, all that being said, to split these tools apart and use them separately. (A well-written HTTP server library would be very handy—and there are a lot of questionable ones out there.)
Kore author here.
You must have used Kore ages ago. The build tool and web server are two separate things and have been for a while.
If you don’t want to use the build tool to help you get started, automatically properly build your app or have any benefits from it, you can roll your own Makefiles. The applications are normal dso files mapped into the server its address space by dlopen() anyway. Those aren’t magic.
Not having a main function sort of goes hand in hand with the fact your apps are dso’s.
Yes there are more things the build tool can help you with, like injecting assets or building a single binary out of your application instead of a dso.
I fully agree that the 2 year old documentation is shit, and that’s something I’m fixing for the next release :)
Not to mention writing a web app in C sounds like a masochistic security mine field due to all the string processing it normally entails. C++ wouldn’t be as bad with std::string, but even then it sounds dreadful.
So it’s not for me, but it still looks like a solid project, and it’s filling an interesting niche.
I don’t think kristapsdz got the memo about not writing web apps in C. https://learnbchs.org/ ;-)
This is a rare one, you don’t hear much about C++ web frameworks much less C ones. Has anyone else used it before? I assumed that writing nginx modules or using H2o as a library and then building from there would be the way to do it in C. C++ has more options like Cutelyst or fudging about with uWebsockets + nginx. What’s more they’re low level enough that there’s minimal magic while still being able to get things done. I’ve gone and tried to use more of the options from the Tech Empower benchmarks leader board just to see what’s possible but many frameworks get fairly difficult to use or understand vs just rolling out something with python & flask pretty easily due to lack of docs.
I use Kore for anything I do.
It’s my TLS termination point, runs my few web services, ran my html5 game, we use a slimmed down version of it at my dayjob and more.
Funny you mention Python, because Kore since a few months ago also supports handlers written in pure Python. Including await support for asynchronous pgsql queries with the built in pgsql support Kore has. It’ll be part of the next release.
Does anyone know what Kore is? There’s no links in the post, and the closest I could find was https://github.com/kframework/kore but I’m not entirely sure it is
I think it’s more likely https://kore.io/
Indeed, that’s the correct link. Kore is an easy to use web platform for writing scalable web APIs in C.
I used to work for an information security company called KoreLogic; we referred to ourselves internally as “Kore”.
Whenever I talked to someone from outside the company it would go like this:
“I work for KoreLogic Security. Not CoreLogic with a ‘C’. Not Core Security. Not Kore IO. KoreLogic with a ‘K’, but not the KoreLogic with a ‘K’ in the United Kingdom.”
(And for future reference, you should absolutely talk to the KoreLogic people if you need information security consulting. I cannot say enough nice things about them.)
Also not OpenKore, a bot software for an MMO ;)
huh, until I read this comment I automatically assumed it was pronounced “ko-ray”