Büchse web engine»Forums
Stas Lisetsky
33 posts / 2 projects
Ex-php dev. Working on a 2d graphics editor
Discussion
Edited by Stas Lisetsky on Reason: Initial post
Hello and welcome!

This is the main discussion thread for Büchse. Please post your questions and suggestions here.

This project was initially planned for personal use, but I changed my mind and now it's open source!
The 0.1 release is still in the making. It was planned for Aug 1, but I had to take some contract work, and haven't made any progress this month. I do plan to resume work early next week and push for early September release.

The repo is available at github.com/staslisetsky/buchse you're welcome to clone it and explore the code. But please hold off the pitchforks and torches, because it's not even alpha technically.

Still, I welcome all suggestions, advice and ideas on how to make the project better.

I'm really excited, and I thank the Handmade Network staff for accepting this project.
I'll see you in September when I officially announce the 0.1 release, that will (hopefully) be actually stable and usable.

Until then, bye-bye and have a good day!

- Stas
Mārtiņš Možeiko
2235 posts / 1 project
Discussion
I would strongly suggest to not do "game-loop" for web servers. Do epoll or io completion ports - something that waits on sockets. Don't do polling.
Stas Lisetsky
33 posts / 2 projects
Ex-php dev. Working on a 2d graphics editor
Discussion
Edited by Stas Lisetsky on
Yes, it's very tempting to do a game-style loop. I really wanted to keep this thing single-threaded, at least for the time being. And I couldn't use blocking sockets, because I have to do maintenance tasks every now and then. I agree that what I did is a bit lazy, and I will probably change that soon. Thanks!
Mārtiņš Možeiko
2235 posts / 1 project
Discussion
Edited by Mārtiņš Možeiko on
You still can have single thread with blocking or nonblocking APIs. Just don't do polling. Check if something is avialable with timeout. If it is - process it, if not, do your maintenance and then go back to sleep. Adding multithreading can come later. "Good" example for this is node.js - all their event loop for processing sockets and file i/o is single threaded (from libuv) but they still use efficient primitives like epoll and io completion ports.
Stas Lisetsky
33 posts / 2 projects
Ex-php dev. Working on a 2d graphics editor
Discussion
Thank you, I will look into that! I just was getting annoyed with sockets and wanted the app to work already :)
But I do hope to develop the fcgi libs into something reasonable.
22 posts
Discussion
Love this idea. I've thought about trying it myself, but I don't have the low-level programming experience yet. I saw part of your blog post in the 3rd screenshot but couldn't find the real thing to read more. :)
Stas Lisetsky
33 posts / 2 projects
Ex-php dev. Working on a 2d graphics editor
Discussion
Edited by Stas Lisetsky on
@winnythefoo Oh, it's just a placeholder to test the blog, not an actual post that exists anywhere. But I do eventually plan to do a post series on my UI system. Just have to finish the blog engine first =)