Adam D. Ruppe wrote: > https://github.com/adamdruppe/misc-stuff-including-D-programming-language- web-stuff > > some docs: > http://arsdnet.net/web.d/cgi.html > http://arsdnet.net/web.d/cgi.d.html > > The file cgi.d in there is my base library for web apps. > > Previously, it spoke regular CGI, FastCGI (with help > from a C lib) and HTTP (with help from the netman.d > and httpd.d files in that github). > > > Now, in addition to those options, it also speaks > SCGI - all by itself - and it can speak http without > needing helper modules. > > The new embedded http server should work on all > platforms too, not just linux like the old one, but > I haven't tested it yet. > > > This finishes out all the major web app interfaces > that I'm aware of. > > > To use them, you write your app with a GenericMain > and always communicate through the Cgi object it > passes you. > > === > import arsd.cgi; > void hello(Cgi cgi) { > cgi.write("Hello, world! " ~ cgi.request("name") ~ "\n"); > } > mixin GenericMain!hello; > === > > > And then compile: > > dmd hello.d arsd/cgi.d # builds a CGI binary > dmd hello.d arsd/cgi.d -version=fastcgi # FastCGI. needs libfcgi > C lib > dmd hello.d arsd/cgi.d -version=scgi # SCGI > dmd hello.d arsd/cgi.d -version=embedded_httpd # built-in http > server > > > The API is the same with all four options. > > With cgi or fastcgi, you put the binary where your web > server can run it. > > With scgi and embedded_httpd, you run the binary. It > persists as an application server. On the command line, > you can say use the option "--port 5000" for example > to change the listening tcp port. > > The default for httpd right now is 8085. The default > for scgi is 4000. > > > > Well, I don't have much else to say, but since it > now does all four of the big interfaces easily, > I thought I'd say something here. > > If you're interested in web programming with D, > this will lay the foundation for you.
Amazing! Well-done Adam!
