P6SGI: Smack the Reference Implementation

The P6SGI standard is progressing reasonably well now. There are a number of issues yet to be worked out it is a reasonably good start. However, before we can really be sure of that, we need an implementation that puts the standard to use and helps us find the warts as well as provides a way to get started working with it.

Introducing: Smack.

Perl has Plack. Perl 6 has Smack. So far, the basics of it's own standalone server are built and working and CGI is started. Some of the built-in apps and some standard middleware have been drafted, but there is a large amount of work to be done.

I have a regular job, 3 boys, and limited spare time. If you have any interest in helping work on the next generation of Perl application servers, your help would be most welcome.



Please make sure not to forget all the async cornercases that Perl5's PSGI can't cope with currently. :)

Porting the same tired crap perl5 has to perl6, sweet.

Also, you're*

To me it looks better than having nothing (or CGI, shudder). I haven't tried it yet, though, and my Perl6 is very basic, so I'm not sure I can help...

But thanks for starting something!

LeoNerd, maybe you could post what exactly are the "async cornercases that Perl5's PSGI can't cope with"?

I don't want to be a downer, but its not clear that *sgi type interfaces are a strong path forward. If you look around the general landscape you can see they are not getting updated and people run into trouble properly support web sockets, http2 and a bunch of things. You can sorta make them work but they run into issues like how to handle when a web socket connection breaks, etc. Many of the popular new frameworks are skipping this route and frameworks with bigger communities (like rack with Rails) are really having trouble moving forward on all this.

I have a personal list of PSGI issues are are blocking me working on some Catalyst fixes: https://gist.github.com/jjn1056/a2ca6c0e7cfb2258654d but I doubt that is going to be the full list.

People like Sri (Mojolicious author) seem to feel the approach is dead, and wrote Mojolicious based on that.

Yeah I'd like to see leonerd's list. Part of the problem here is that is feels like the people that are smart enough to know the problems are just not that interested in any sort of PSGI or like.

The question is what are the use cases for P6sgi that we are trying to solve? My guess is that PSGI which is based on WSGI (a spec that is like 15 years old) could use a revisit.

I've spent a ton of time and effort trying to make Catalyst take better advantage of its PSGI bones and at this point the failure of our ability to move PSGI forward is blocking Catalyst from evolving. I wish I had better thoughts here but I really think rather than just port the Perl version we need to really think hard about what the future of this type of system is. Sadly I am not someone who is good to help think that through :(

Leave a comment

About Sterling Hanenkamp

user-pic Perl hacker by day, Perl 6 module contributor by night.