Les projets python de la semaine 37: Tornado (web) , sqlkit (database), HeeChee (mercurial-subversion), sinthgunt (video, ffmpeg)
Posted by patrick sur septembre 12, 2009
- http://www.tornadoweb.org/ (‘Tornado is an open source version of the scalable, non-blocking web server and tools that power FriendFeed. The FriendFeed application is written using a web framework that looks a bit like web.py or Google’s webapp, but with additional tools and optimizations to take advantage of the underlying non-blocking infrastructure. The framework is distinct from most mainstream web server frameworks (and certainly most Python frameworks) because it is non-blocking and reasonably fast. Because it is non-blocking and uses epoll, it can handle thousands of simultaneous standing connections, which means it is ideal for real-time web services. We built the web server specifically to handle FriendFeed’s real-time features — every active user of FriendFeed maintains an open connection to the FriendFeed servers. (For more information on scaling servers to support thousands of clients, see The C10K problem…Tornado has been tested on Python 2.5 and 2.6. To use all of the features of Tornado, you need to have PycURLsimplejson installed and a JSON library like )’)
- http://github.com/dustin/tornado/tree/master ( a port of the tornado web framework to twisted.)
- http://glyph.twistedmatrix.com/2009/09/what-i-wish-tornado-were.html (‘In the course of developing Tornado, there are several things that FriendFeed could have done to move the Twisted community forward, at no cost to themselves. I don’t want to rag on FriendFeed, or Bret Taylor, or Facebook here; they’re not the first to re-write something without communicating. In fact I recently had almost this exact same discussion with another project that did the same thing. Since Tornado is such a high-profile example, though, I want to draw attention to the problem so that there’s some hope that maybe the next project won’t forget to communicate first.’)
- http://glyph.twistedmatrix.com/2009/09/tornado-twisted.html (‘Many kudos to Dustin Sallings, who has already created a branch of Tornado which uses Twisted for both networking and HTTP parsing, in probably less time than it took me to write my previous post about how somebody should do that. Awesome!
(The method it uses is currently a little weird, where you create a « Site » object, but it looks like it would be pretty simple to use a Resource instead if you were so inclined.)’)
- http://www.aeracode.org/2009/9/10/announcing-heechee/ (…One of the particular issues I have is with svn:externals. A lot of apps – including some we have at work – rely on svn:externals to pull in external dependencies into a libs folder along with the project itself. Externals is one of the few features of subversion that I thought was pretty much perfect, and it was sad to see my move to Mercurial break it… One of the questions led him onto hg-git – the awesome git backend plugin for Mercurial, that the GitHub guys wrote – and how they first investigated the idea of an svn gateway to expose their repositories transparently to subversion users. From what I gathered, subversion’s wire format proved too tricky to deal with, and so they turned elsewhere…After some digging, reading an obscure academic paper and liberal application of Wireshark, I grew confident enough that I could at least implement something. A day later, and I’d like to present the very first version of what I’m calling Heechee (if you get the pun, ten nerd points). Heechee is a transparent mercurial-as-subversion gateway. It serves a Mercurial repository as a Subversion WebDAV-based repository. It’s still in the early stages, but at the moment it will serve its own mercurial repository to subversion in such a way that you can check out the repository, and update to various revisions within it.You can check it out at BitBucket. It’s pretty alpha code, and make sure you have the dependencies mentioned in the README, but it works, which greatly surprises me. I plan to much improve the code to support more ‘advanced’ features, like being able to do more than checkout and update, as well as exposing tags and branches correctly. There’s even the chance I’ll stick Git support in, when I’ve had a play with Dulwich.)
- http://sqlkit.argolinux.org/ (‘Sqlkit is a mini framework based on pygtk that provides some very powerfull classes to edit databases. It’s meant as a base for database desktop applications. Sqlkit is based on:
- sqlalchemy (>=0.5)
- babel for localization
- the correct driver for your database of choice‘).
Un autre projet similaire est camelot basé sur pyQt (http://pypi.python.org/pypi/Camelot/).
- http://code.google.com/p/sinthgunt/ (‘Sinthgunt is an open source graphical user interface for ffmpeg, a computer program that can convert digital audio and video into numerous formats. Using pre-configured conversion settings, it makes the task of converting between different media formates very easy.‘)