Webware for Python
Release 0.5 on 3/1/2001
http://webware.sourceforge.net
Synopsis
Webware for Python is a suite of software components for developing object-oriented, web-based applications. The suite uses well known design patterns and includes popular features such as:
- A fast, multi-threaded, easy-to-use application server
- Servlets
- Python Server Pages (PSP, similar to ASP, PHP and JSP)
- An object-relational mapper
- Task scheduling
- User management and authentication
- A CGI wrapper
Key goals of the project include:
- Python- and object-oriented.
- An expansive suite of components and features to cover common needs of web developers.
- Modular architecture where components can be used together or independently.
- Excellent documentation and numerous examples.
- Open source development and community.
Feedback and Support
You can e-mail webware-discuss@lists.sourceforge.net to give feedback, discuss features and get help using Webware. You can visit the webware-discuss page to join the list.
Installation
Be sure to run install.py in the Webware directory before proceeding. Some portions of the documentation will not be accessible until this is done. (You can use install.py -v for verbose output).
Components
Each Webware component has a focused purpose and can often be used on its own. At the same time, the components are designed to work together where appropriate. You can use as much or as little of Webware as you want to.
The components are summarized in the Component Index.
Most people start with WebKit, which is the Webware application server.
Status
Webware is already being used for real work by a variety of people in different environments. With support from the webware-discuss mailing list, you should feel comfortable developing with Webware.
In the Component Index you will see the status of each component such as alpha and beta. For beta components we are successfully striving for backwards compatibility of the API as the components mature.
The plan is for the next release to be 1.0, approximately 4 months after this release, e.g. July 2001.
Some goals in order to realize official production quality include:
- Larger regression test suite.
- Even better documentation.
- Tutorial.
- Take all beta components to production.
- Take all alpha components to beta.
- WebKit AppServer:
- Better handling of its own errors (it already deals well with servlet errors).
- Better application directory structue.
- Other items.
You can keep up on new releases through the very low traffic announcement list and the home page at http://webware.sourceforge.net.
Contributing
Webware could always use contributors in various areas, some of them lightweight and some of them not. Consider all the fun things you could do:
- Test pre-releases on your favorite OS, web server and version of Python. (lightweight)
- Write custom WebKit adapters for your favorite web server for enhanced performance. (fairly lightweight)
- Write an article about using Webware. (middleweight)
- Write a tutorial. (middleweight)
- Build up regression test suites to help with testing and ensure future stability. (middleweight)
- Contribute to the implementation of components such as WebKit and PSP. (heavyweight)
- Contribute something else you might think of that we haven't.
If you are interested in contributing please contact webware-discuss@lists.sourceforge.net.
Summary Information
Design Points
- Webware is pro-Python. These software components are not about Java, C++ or any other programming languages.
- The various software components are meant to be accessible in a stand alone fashion except in those cases where one component builds on another. That doesn't preclude the idea that the components can provide hooks for integration or even automatically integrate other components when their presence is detected.
- A clean, object-oriented style of development is used as much as possible.
- However, Webware components don't provide a special class for each type of HTML tag. It's generally easier and more efficient to use strings like '<br><hr>' than to say something like 'BreakLine() + HorizontalRule()'.
- Documentation is meant to be of the highest caliber so that users can more quickly get up and running with Webware.
- All components are accompanied by examples (that also serve as tests).
- Over time, regression tests are created and expanded upon for each component.
- Although Webware includes more than one independent component, it's not intended to be a hodge-podge repository of any kind of web component written in Python. New components should fit into the 'feel' of what's there already and provide integration with other components whereever possible. The emphasis is on high-quality, object-oriented components (with the mild exception of the utility collections, MiscUtils and WebUtils).
Release Notes
Future
- The plan is for the next release to be 1.0, approximately 4 months after this release, e.g. July 2001. See Status above.
- Get gendoc or pythondoc going on the source code.
- Consider switching docs to Latte.
- Write an article for www.oreillynet.com/topics/python/internet.
- Investigate
- See the Future or TO DO sections of the documentation for each component for more info.
Thanks to...
Members of webware-discuss and python-web-modules for discussion and feedback.
SourceForge for hosting Webware for Python
Guido van Rossum for Python
Copyright © 1999-2001 by Chuck Esterbrook. All Rights Reserved.
See copyright notice above for full details.