Perl Shell Perl6
Fetching latest commit…
Cannot retrieve the latest commit at this time.
|Failed to load latest commit information.|
ww6: Web Application Framework and CMS Library-set for Perl 6 Status: It works, but depending on features you use, can be pretty slow. The dynamic module loading can have some strange side effects if you are mixing pre-compiled libraries with plain .pm ones. I recommend compiling everything first, if you use 'panda' or one of the other Perl 6 package managers to install it, the compilation will be done for you. That is highly recommended. === Story === In the beginning was Webtoo Websight, and it was good. Based on the Perlite libraries it was, and they were good. Both had reached a mighty version number of 5, but both had also reached a point where a complete rewrite was in order. It could have been done in Perl 5, as both were already written in said language. It could have been done with magical tools such as Moose, to make it stronger and easier to debug. But then, the Great Architect said, "no." And proceeded to rewrite the whole thing, in Perl 6. This is the result. === Features === * Supports Dispatch based configurations, where all URLs are matched and dispatched to the correct module. * Supports a custom website content management system, which looks for pages in a specific format, and parses them with plugins. * Supports web applications with dynamically dispatched controllers, similar to CodeIgniter from PHP. * Has a simple script 'ww6' to create new sites/apps with: $ ww6 --create webapp --dir new-app To get a list of available templates, type 'ww6 --list'. * The templates come with an example daemon.pl6 script (the default uses SCGI on port 8118) which is really simple to use: ./daemon.pl6 Then connect an SCGI mount to port 8118 to see your app. === Dependencies === = Requirements = - Rakudo Perl 6 http://rakudo.org/ A version of Perl 6 for the Parrot Virtual Machine. - The Hash::Has, HashConfig and WebRequest libraries http://github.com/supernovus/hash-has http://github.com/supernovus/HashConfig http://github.com/supernovus/WebRequest Used by the core, these used to be in a single library collection called Perlite, but where separated out into their own projects. - The SCGI library for Perl 6 http://github.com/supernovus/SCGI This library was written specifically because I was frustrated testing ww6 as a CGI script, where the performance was abysmal. - The Exemel and Flower libraries http://github.com/supernovus/exemel http://github.com/supernovus/flower Used by both the CMS libraries, and the Lighter web application library. - The JSON::Tiny library http://github.com/moritz/json Required by the HashConfig library, this is used for configuration files and Metadata (as well as a few other places in examples.) - The Temporal Utils library collection http://github.com/supernovus/temporal-utils Not used by the core, but it is used by a few of the CMS plugins (including Headers) and by Flower::Utils::Date which can be loaded by the Flower plugin (see the modifiers option in the Flower plugin.) - If you want to run the SCGI process on a computer behind NAT, and have the publically accessible web server forward requests to it, you can look into the reverse proxy functionality of OpenSSH. The 'extra/service.sh' and 'extra/svc/example.cfg' files show how I had it set up to run on my home computer, and forward to my VPS. === Future Plans === This project is still under construction, and does not include all of the functionality from Webtoo Websight 5 yet. See the docs/TODO.txt for specific details on future plans. License: http://www.perlfoundation.org/artistic_license_2_0 Author: Timothy M. Totten