[Web-SIG] ANN: General availability of the WebCore WSGI nanoframework v2.0.
Marcel Hellkamp
marc at gsites.de
Tue Apr 19 04:03:39 EDT 2016
Currently, all the links in this mail are dead.
Am 19.04.2016 um 00:17 schrieb Alice Bevan–McGregor:
>> Best Practices Morpheus says: "What if I told you things can get
> simpler, more independent, and more testable, with a separation of
> concerns in a glorious holy land?"
>
> WebCore is a WSGI nanoframework, a fraction of the size of competing
> “microframeworks”, and culmination of more than ten years of web
> development experience. It provides a clean API for standard points of
> extension while strongly encouraging model, view, controller
> separation. Being less than 400 source lines of code (SLoC of
> `web.core`; excludes comments and documentation) and containing more
> comments and lines of documentation than lines of code, WebCore is
> built to be insanely easy to test, adapt, and use, allowing any
> developer familiar with programming (not just Python programming) to
> be able to read and understand the entirety of the framework in an
> evening.
>
> * Pypi Package: http://s.webcore.io/fjYp
> * Annotated Source Documentation: http://s.webcore.io/fja7
> * Source Repository: http://s.webcore.io/fjVF
> * Compatible with: Python 2.7+, Python 3.2+, Pypy, Pypy3
> * Dependencies: WebOb, marrow.package
> * 100% test coverage.
> * Digitally signed release artifacts and commits.
>
> WebCore adds a light-weight dependency-graphed extension layer to
> WSGI, offering points of extension which replace WSGI middleware, as
> well as callbacks difficult to implement in bare WSGI, while also
> supporting standard WSGI middleware both as an application and when
> treating WebCore as middleware itself. As the #1 thing a typical
> framework is responsible for is to resolve a URL to a controller to
> handle the request, this process has been standardized under a
> "dispatch protocol" (http://s.webcore.io/fjRy) which WebCore speaks.
> The Marrow Open Source Collective provide several framework-agnostic
> reference implementations covering regular expression-based routes,
> object dispatch (attribute descent), and traversal (mapping descent),
> as well as more abstract "meta-dispatchers" and "dispatch middleware".
>
> from web.core import Application
> Application("Hi.").serve('wsgiref')
>
> The rest is up to you, the developer. WebCore is as opinionated as a
> coma patient.
>
> A request comes in, hits the WebCore WSGI Application or outermost
> WSGI middleware layer, dispatch resolves an "endpoint", the endpoint
> is executed if callable, and the return value (or endpoint if not
> callable) is used to find a view which populates the response. The
> example above relies on the fact that there is a default view to
> handle strings.
>
> Namespaces, virtual dependencies (extras_require) and standard Python
> entry_points plugin registration are extensively utilized by the
> framework. You may place your own packages within the `web`,
> `web.app`, `web.ext`, `web.server`, etc. namespaces if desired.
> WebCore is also "optimization aware" and will eliminate several
> expensive validation tests and all debug-level logging from production
> environments when run with -O or with PYTHONOPTIMIZE set. WebCore was
> designed to make use of under-utilized WSGI features such as chunked
> streaming responses and thus pairs naturally with the template engine
> "cinje" (http://s.webcore.io/fjUx) allowing for the ultimate in
> responsiveness. Where Django gets 2 generations per second on a 1000
> row table test, cinje gets nearly 40,000; see the cinje wiki.
> Eliminate boilerplate and enjoy a snappier app today!
>
> Please give WebCore (and cinje!) a try on your next project or
> experiment; see the README, many examples, and extensively documented
> source code to learn more. You may be pleasantly surprised to discover
> you won't miss those monolithic framework features you weren't using.
> Join us in #webcore on Freenode IRC if you have any questions or
> comments; we'd love to hear from you and will gladly assist users
> getting started using the framework or evaluating and integrating
> components.
>
> Proudly developed in Montréal with the support of Illico Hodes
> (http://s.webcore.io/fjYI).
More information about the Web-SIG
mailing list