quickserv
php
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
quickserv
-
The beauty of CGI and simple design
> Zero external configuration, other than telling your webserver to enable CGI on your file
This is only true if you've done it before, and know what you're doing. In reality, it looks like a mess of `mod_cgi` configuration, trying different combinations of file permissions, finding the magic `cgi_bin` directory, finding the right obscure log files when there are inevitably errors, wrestling with CORS and other subtleties of HTTP headers, and other complexities that are only easy to navigate if you're already an experienced CGI user.
That being said, I love the philosophy of using CGI for scripts. Instead of using CGI itself, though, I wrote a (single-file, statically-linked) web server called "QuickServ" to bring this philosophy into the twenty-first century. It has all of the upside of CGI, but is much easier to set up and run, especially for beginners.
One of its benefits is that it automatically parses submitted HTTP forms, and converts the form fields to command line arguments. That means it's extremely easy to put existing CLIs on the web with minimal changes other than writing an HTML form front-end.
If you like CGI, I will (shamelessly) ask that you check it out!
https://github.com/jstrieb/quickserv
https://news.ycombinator.com/item?id=29002694
-
Websocketd – It's like CGI, twenty years later, for WebSockets
This is awesome! This occupies a similar niche to—and might pair well with—my user friendly, single-binary webserver with CGI-like capabilities called QuickServ. When I released that here, one of the comments was that it would be nice to have WebSocket support. Now, I can just point people to this!
https://github.com/jstrieb/quickserv
- jstrieb/quickserv: Dangerously user-friendly web server for quick prototyping and hackathons
- Introducing QuickServ • Dangerously user-friendly web server for quick prototyping and hackathons
- QuickServ • Dangerously user-friendly web server for quick prototyping and hackathons
- QuickServ – User-friendly web server (only for Local networks!)
- Show HN: QuickServ • Dangerously user-friendly web server
php
-
What is your favorite programming language?
I thought you might enjoy this, if you haven't seen it already.
- PHP is Prolog implemented in C, compiled to WASM, speaking CGI, executed by a Rust runtime, interpreting PHP-style templates
-
PHP: Prolog Home Page
When I clicked the last commit message was too good. Preserving just in case they are doing rapid releases: https://github.com/guregu/php/commit/65b1e991f473d6ac0dd9de4...
-
The beauty of CGI and simple design
Recently I enjoyed some "retrofuturistic" development with WASM and CGI. Spin[1], a webserver written in Rust, can execute WASI[2] binaries that speak CGI. You can then deploy it to Fermyon Cloud or your own server and it "just works". It's a wonderful mix of old and new. I used it for PHP (Prolog Home Page): https://github.com/guregu/php
[1]: https://spin.fermyon.dev/
[2]: WASI is a POSIX-ish standard for WASM that gives you all the low level stuff like standard input and output. It includes all the bits and pieces needed for CGI to work.
What are some alternatives?
websocketd - Turn any program that uses STDIN/STDOUT into a WebSocket server. Like inetd, but for WebSockets.
logtalk3 - Logtalk - declarative object-oriented logic programming language
Trusted-CGI - Lightweight runner for lambda functions/apps in CGI like mode
trealla - A compact, efficient Prolog interpreter written in plain-old C.
vehiclelogserver - Vehicle logging server for Second Life vehicles
ciao - Ciao is a modern Prolog implementation that builds up from a logic-based simple kernel designed to be portable, extensible, and modular.
preemptible-thread - How to preempt threads in user space
trealla-js - Trealla Prolog for the web
quickserv-examples - Example applications to run with QuickServ
packages-http - The SWI-Prolog HTTP server and client libraries
sozluk-cgi - one of the first versions of ekşi sözlük code as of may 1999