Changes for version 0.5.1
- added support for builtin vars in the main url, as in GET /=/feed/Post/_user/agentzh.Public (xunxin)
- added the CompiledAction handler (currently for GET http commands only). (xunxin)
- now _callback and _var work with non-JSON data format as well.
- Model API
- use quasiquotes for function delete_records. (xunxin)
- added support for the Pg hstore column type.
- now we finally support _op = contains|le|ge|... correctly.
- now we support model columns of array types.
- started to stub out the prophet handler and model code (jesse)
- Version API
- fixed the revision inspection bug.
- Action API
- fixed the bug involved in params with unicode characters.
- fixed the bug involved in action call with param values of 0.
- added $_ROLE and $_ACCOUNT support.
- implemented HTTP forwarding to any sites in an action.
- added support for the frontend.allow_forwarding config option.
- View API
- added $_ROLE and $_ACCOUNT support.
- OpenResty.pm - enhances the DB re-connection stuff.
- Dispatcher - now we try to re-init at every request even if we have InitFatal.
- Captcha handler - now we use _lang rather than lang for languague indication.
- perl minisql compiler
- added support for the Pg array indexing syntax.
- now we allow proc() w/o arguments.
- haskell restyscript
- added support for subquery in from clause.
- added support for array indexing.
- added support for operators is and is not.
- added support for builtin variables.
- demo/Admin
- implemented the HTTP Console and Action Console panels.
- implemented incremental bulk insertion for rows.
- now the "Delete all rows" link can remove rows selectively
- enlarged the input boxes in the model creation form.
- added the "Go to end" link to the model row panel.
- sort the row fields by field name in both row display and row creation views.
- removed yahoo logo from the UI.
- added operator option list and other functionalities to the model row search panel.
- added support for exporting as CSV format and stream JSON format.
- added "prohibiting" to the columns for role spec.
- removed the "Click to edit" placeholder since it has been problematic.
- marked column labels to create model row panel.
- updated demo/BlogAdmin.
- demo/RestyCheck - now checks captcha images as well.
- demo/Blog
- now we sort comment list for a full post.
- fixed the ACL rule leaks in init.pl.
- demo/Springbot - now ignores fancybot and any other bots from now on.
- openresty.js
- worked around the cross-site POST issue in Opera.
- added support for urls *with* "?" in it
- added bin/install-deps.sh to install or upgrade all the CPAN dependencies.
- bin/reindex - stripped trailing \r.
- bin/openresty
- add the -f option for explicitly specifying a config file.
- bin/openresty - now we cahce the stats log.
- added the test-memcached.pl script.
- import-model.pl
- added --ignore-dup-error option in the usage message.
- fixed url_encode.
- added support for the --update-col option.
- added notes about irc.openresty.net to POD
- modify some test files for the proper config initialization. (xunxin)
- 00-prereq to bail out if we fail basic test, most likely due to incorrect db config. (clkao)
- clear cache for local tests. (clkao)
- auto create test accounts for local tests. (clkao)
Documentation
Command-line frontend utility for the OpenResty server
Cheat sheet for OpenResty
OpenResty Account Admininstration
OpenSearch 体系结构白皮书(草案)
Captcha 图片生成和验证
Installation instructions for OpenResty servers
Install binary distributions of OpenResty
Metamodel for OpenResty backends
Overview of the OpenResty service platform
OpenResty REST Service Specification [draft]
OpenResty REST 协议白皮书(草案)
Introduction to the OpenResty test suite
Upgrading to new versions of OpenResty server
Zero to OpenResty for Perl programmers
中文版快速入门教程
Running the OpenResty test suite on Win32
Modules
General-purpose web service platform for web applications
class factory for OpenResty backend classes
Base class for OpenResty backend classes
OpenResty backend for the PostgreSQL PL/Proxy-based cluster databases
Pg backend for OpenResty running via PL/Perl
OpenResty backend for PostgreSQL standalone databases
OpenResty backend for the PostgreSQL PL/Proxy-based cluster databases
A mocked-up OpenResty backend for the Pg backend
OpenResty backend for Prophet databases
Cache for OpenResty
Configure file reader for OpenResty
The main dispatcher for the OpenResty server
The action handler for OpenResty
The captcha handler for OpenResty
Handler for pre-compiled views
The feed handler for OpenResty
The login handler for OpenResty
The model handler for OpenResty
The model handler for OpenResty
The role handler for OpenResty
The "unsafe" handler for OpenResty
The version handler for OpenResty
The view handler for OpenResty
OpenResty app class for inlined REST requrests
Various contraints used in the OpenResty server
Perl wrapper for the restyscript compiler via IPC
RestyScript (for Views) compiler in pure Perl
SQL generator for insert statements
SQL generator for select statements
Base class for the various SQL generator classes
SQL generator for update statements
Standalone server based on HTTP::Server::Simple for OpenResty
Utility functions for OpenResty
Provides
in lib/OpenResty/FastCGI.pm
in lib/OpenResty/FeedWriter/RSS.pm
in lib/OpenResty/Handler/Base.pm
in lib/OpenResty/Handler/CompiledAction.pm
in lib/OpenResty/Handler/LastResponse.pm
in lib/OpenResty/Handler/Logout.pm
in lib/OpenResty/QuasiQuote/SQL.pm
in lib/OpenResty/QuasiQuote/Validator.pm
in lib/OpenResty/QuasiQuote/Validator/Compiler.pm
in lib/OpenResty/RestyScript/ViewUpgrade.pm
in lib/OpenResty/Script/Compile.pm
in lib/OpenResty/Script/Upgrade.pm
in lib/OpenResty/Shell.pm
in lib/OpenResty/Shell/History.pm
in lib/OpenResty/QuasiQuote/Validator/Compiler.pm
in lib/WWW/OpenResty/Embedded.pm
Examples
Other files
- AUTHORS
- Changes
- LICENSE
- MANIFEST
- META.yml
- Makefile.PL
- README
- TODO
- demo/Admin/Makefile
- demo/Admin/README
- demo/Admin/css/admin.css
- demo/Admin/css/fonts.css
- demo/Admin/css/login.css
- demo/Admin/image/lower-left.gif
- demo/Admin/image/lower-right.gif
- demo/Admin/image/upper-left.gif
- demo/Admin/image/upper-right.gif
- demo/Admin/js/admin.js
- demo/Admin/js/login.js
- demo/Admin/js/thirdparty/jquery.cookie.pack.js
- demo/Admin/js/thirdparty/jquery.jeditable.pack.js
- demo/Admin/js/thirdparty/jquery.js
- demo/Admin/template/banner.tt
- demo/Admin/template/elem/action.tt
- demo/Admin/template/elem/column-inputs.tt
- demo/Admin/template/elem/console.tt
- demo/Admin/template/elem/create-action.tt
- demo/Admin/template/elem/create-bulk-row.tt
- demo/Admin/template/elem/create-feed.tt
- demo/Admin/template/elem/create-model.tt
- demo/Admin/template/elem/create-role.tt
- demo/Admin/template/elem/create-row.tt
- demo/Admin/template/elem/create-view.tt
- demo/Admin/template/elem/feed.tt
- demo/Admin/template/elem/menu.tt
- demo/Admin/template/elem/model-dump-res.tt
- demo/Admin/template/elem/model-rows.tt
- demo/Admin/template/elem/model.tt
- demo/Admin/template/elem/object-list.tt
- demo/Admin/template/elem/pager.tt
- demo/Admin/template/elem/param-inputs.tt
- demo/Admin/template/elem/role-rules.tt
- demo/Admin/template/elem/role.tt
- demo/Admin/template/elem/view.tt
- demo/Admin/template/footer.tt
- demo/Admin/template/header.tt
- demo/Admin/template/js/dispatcher.tt
- demo/Admin/template/js/handlers.tt
- demo/Admin/template/login.tt
- demo/Blog/Makefile
- demo/Blog/README
- demo/Blog/TODO
- demo/Blog/css/blog.css
- demo/Blog/css/styles.css
- demo/Blog/css/themes/common/base-weblog.css
- demo/Blog/css/themes/common/print.css
- demo/Blog/css/themes/common/print.css.1
- demo/Blog/css/themes/common/tipjar.css
- demo/Blog/css/themes/lilia/theme-bluecrush.css
- demo/Blog/css/themes/lilia/theme-bluecrush/banner-bg.gif
- demo/Blog/css/themes/lilia/theme-bluecrush/colitem-header-bg.gif
- demo/Blog/css/themes/lilia/theme-bluecrush/column-left-bg.gif
- demo/Blog/css/themes/lilia/theme-bluecrush/container-bg.gif
- demo/Blog/css/themes/lilia/theme-bluecrush/li-bg.gif
- demo/Blog/css/themes/lilia/theme-bluecrush/thumbnailed-bg.gif
- demo/Blog/doc/blog_site.png
- demo/Blog/doc/graphviz.mk
- demo/Blog/image/loading.gif
- demo/Blog/image/me.jpg
- demo/Blog/js/blog.js
- demo/Blog/js/thirdparty/jquery.js
- demo/Blog/script/init.pl
- demo/Blog/script/reset.mk
- demo/Blog/template/banner.tt
- demo/Blog/template/elem/archive-list.tt
- demo/Blog/template/elem/archive-nav.tt
- demo/Blog/template/elem/calendar.tt
- demo/Blog/template/elem/comments.tt
- demo/Blog/template/elem/nav.tt
- demo/Blog/template/elem/pager.tt
- demo/Blog/template/elem/post-list.tt
- demo/Blog/template/elem/post-page.tt
- demo/Blog/template/elem/post.tt
- demo/Blog/template/elem/recent-comments.tt
- demo/Blog/template/elem/recent-posts.tt
- demo/Blog/template/footer.tt
- demo/Blog/template/header.tt
- demo/Blog/template/sidebar.tt
- demo/Blog2/Makefile
- demo/Blog2/README
- demo/Blog2/TODO
- demo/Blog2/css/blog.css
- demo/Blog2/css/styles.css
- demo/Blog2/css/themes/common/base-weblog.css
- demo/Blog2/css/themes/common/print.css
- demo/Blog2/css/themes/common/print.css.1
- demo/Blog2/css/themes/common/tipjar.css
- demo/Blog2/css/themes/lilia/theme-bluecrush.css
- demo/Blog2/css/themes/lilia/theme-bluecrush/4ebg.gif
- demo/Blog2/css/themes/lilia/theme-bluecrush/banner-bg.gif
- demo/Blog2/css/themes/lilia/theme-bluecrush/colitem-header-bg.gif
- demo/Blog2/css/themes/lilia/theme-bluecrush/column-left-bg.gif
- demo/Blog2/css/themes/lilia/theme-bluecrush/container-bg.gif
- demo/Blog2/css/themes/lilia/theme-bluecrush/li-bg.gif
- demo/Blog2/css/themes/lilia/theme-bluecrush/tbg.gif
- demo/Blog2/css/themes/lilia/theme-bluecrush/tbgr.gif
- demo/Blog2/css/themes/lilia/theme-bluecrush/thumbnailed-bg.gif
- demo/Blog2/css/themes/lilia/theme-bluecrush/tit.gif
- demo/Blog2/css/themes/lilia/theme-bluecrush/titl.gif
- demo/Blog2/script/blogadmin.pl
- demo/BlogAdmin/Makefile
- demo/BlogAdmin/README
- demo/BlogAdmin/css/blogadmin.css
- demo/BlogAdmin/css/fonts.css
- demo/BlogAdmin/css/login.css
- demo/BlogAdmin/js/blogadmin.js
- demo/BlogAdmin/js/login.js
- demo/BlogAdmin/js/thirdparty/wymeditor/iframe/default/lbl-blockquote.png
- demo/BlogAdmin/js/thirdparty/wymeditor/iframe/default/lbl-h1.png
- demo/BlogAdmin/js/thirdparty/wymeditor/iframe/default/lbl-h2.png
- demo/BlogAdmin/js/thirdparty/wymeditor/iframe/default/lbl-h3.png
- demo/BlogAdmin/js/thirdparty/wymeditor/iframe/default/lbl-h4.png
- demo/BlogAdmin/js/thirdparty/wymeditor/iframe/default/lbl-h5.png
- demo/BlogAdmin/js/thirdparty/wymeditor/iframe/default/lbl-h6.png
- demo/BlogAdmin/js/thirdparty/wymeditor/iframe/default/lbl-p.png
- demo/BlogAdmin/js/thirdparty/wymeditor/iframe/default/lbl-pre.png
- demo/BlogAdmin/js/thirdparty/wymeditor/iframe/default/wymiframe.css
- demo/BlogAdmin/js/thirdparty/wymeditor/iframe/default/wymiframe.html
- demo/BlogAdmin/js/thirdparty/wymeditor/jquery.wymeditor.js
- demo/BlogAdmin/js/thirdparty/wymeditor/jquery.wymeditor.pack.js
- demo/BlogAdmin/js/thirdparty/wymeditor/lang/ca.js
- demo/BlogAdmin/js/thirdparty/wymeditor/lang/de.js
- demo/BlogAdmin/js/thirdparty/wymeditor/lang/en.js
- demo/BlogAdmin/js/thirdparty/wymeditor/lang/es.js
- demo/BlogAdmin/js/thirdparty/wymeditor/lang/fa.js
- demo/BlogAdmin/js/thirdparty/wymeditor/lang/fr.js
- demo/BlogAdmin/js/thirdparty/wymeditor/lang/hu.js
- demo/BlogAdmin/js/thirdparty/wymeditor/lang/it.js
- demo/BlogAdmin/js/thirdparty/wymeditor/lang/nl.js
- demo/BlogAdmin/js/thirdparty/wymeditor/lang/pl.js
- demo/BlogAdmin/js/thirdparty/wymeditor/lang/pt.js
- demo/BlogAdmin/js/thirdparty/wymeditor/lang/ru.js
- demo/BlogAdmin/js/thirdparty/wymeditor/lang/sv.js
- demo/BlogAdmin/js/thirdparty/wymeditor/lang/zh_cn.js
- demo/BlogAdmin/js/thirdparty/wymeditor/plugins/hovertools/jquery.wymeditor.hovertools.js
- demo/BlogAdmin/js/thirdparty/wymeditor/plugins/tidy/README
- demo/BlogAdmin/js/thirdparty/wymeditor/plugins/tidy/jquery.wymeditor.tidy.js
- demo/BlogAdmin/js/thirdparty/wymeditor/plugins/tidy/tidy.php
- demo/BlogAdmin/js/thirdparty/wymeditor/plugins/tidy/wand.png
- demo/BlogAdmin/js/thirdparty/wymeditor/skins/default/icons.png
- demo/BlogAdmin/js/thirdparty/wymeditor/skins/default/skin.css
- demo/BlogAdmin/js/thirdparty/wymeditor/skins/default/skin.js
- demo/BlogAdmin/js/thirdparty/wymeditor/skins/minimal/skin.css
- demo/BlogAdmin/js/thirdparty/wymeditor/skins/minimal/skin.js
- demo/BlogAdmin/js/thirdparty/wymeditor/skins/wymeditor_icon.png
- demo/BlogAdmin/js/vars.js
- demo/BlogAdmin/template/ajax/edit.tt
- demo/BlogAdmin/template/ajax/posts.tt
- demo/BlogAdmin/template/footer.tt
- demo/BlogAdmin/template/login.tt
- demo/Click4honor/JSON.js
- demo/Click4honor/Makefile
- demo/Click4honor/click4honor_fullview.js
- demo/Click4honor/init.pl
- demo/Click4honor/jquery.js
- demo/Click4honor/jsont.js
- demo/Onccf/Makefile
- demo/Onccf/README
- demo/Onccf/css/global.css
- demo/Onccf/css/layout.css
- demo/Onccf/css/onccf.css
- demo/Onccf/css/slideshow.css
- demo/Onccf/css/theme.css
- demo/Onccf/image/gate.jpg
- demo/Onccf/js/onccf.js
- demo/Onccf/js/pod2html.js
- demo/Onccf/script/init.pl
- demo/Onccf/script/reset.mk
- demo/Onccf/t/01-pod2html.t
- demo/Onccf/template/ajax/login.tt
- demo/Onccf/template/ajax/menu.tt
- demo/Onccf/template/ajax/submenu.tt
- demo/Onccf/template/header.tt
- demo/RestyCheck/JSON.js
- demo/RestyCheck/Makefile
- demo/RestyCheck/jquery.js
- demo/RestyCheck/openresty.js
- demo/RestyCheck/restycheck.css
- demo/RestyCheck/restycheck.js
- demo/Springbot/README
- demo/Springbot/log/import.pl
- demo/Springbot/log/init.pl
- demo/Springbot/springbot
- demo/Springbot/staff/Makefile
- demo/Springbot/staff/csv2resty.pl
- demo/Springbot/staff/html2txt.pl
- demo/Springbot/staff/init.pl
- demo/Springbot/staff/pinyin.txt
- demo/Springbot/staff/sql2txt.pl
- demo/Springbot/staff/txt2csv.pl
- demo/YisouComments/dojo.yisoucomments.js
- demo/YisouComments/lightbox3.js
- demo/YisouComments/loading.gif
- demo/YisouComments/post.html
- demo/YisouComments/post.js
- demo/YisouComments/storage.js
- demo/YisouComments/style3.css