Features of the forthcoming Porcupine release

Posted by tkouts on 18 April 2010 | 2 Comments

Tags: porcupine, quix

The forthcoming Porcupine release includes a whole new bunch of exciting features and improvements. This is a list of the most significant:

1. Python 3 compatibility. The new version will require Python 2.6 or later but it will also be Python 3 compatible. Since the bsddb module is deprecated, an extra dependency to pybsddb is added. Porcupine will continue to support both modules with pybsddb having priority over its predecessor.

2. High availability and horizontal scalability by using single master-multiple slave database replication to n Porcupine nodes. The web connector acts as a software load balancer for the back-end nodes using round-robin.

3. New redesigned database. The main Porcupine DB is now a b-tree instead of hash. All children of a container are now stored adjacently. Locality of reference plays an important part in database performance.

4. Support for JSON-RPC 2. JSON is more compact and readable than XML. All remote methods handle this transparently based on the content type of the request.

5. Enhanced OQL query optimizer.

6. Elastic schema that allows easy schema updates without requiring database updates. The database is physically inconsistent but the API enforces consistency. Each object becomes consistent the next time it is updated. This requires code updates since the __props__ class attribute of the content classes has significantly changed.

7. The upcoming release will also include a template engine (py-normal-template) that enforces MVC.

8. Using swfupload instead of the applet for uploading files. The applet blocks JavaScript execution while the user selects files. This was potentially interpreted as an unresponsive script by most browsers.

9. QuiX now supports right-to-left layouts for the Arabic speaking countries. The whole UI mirroring is handled transparently and this is done just by adding an extra attribute to the desktop widget.

10. Although all dates are stored in UTC, they were transferred using the server's time zone. Now this is no longer true. Dates are transferred in UTC format and converted to local dates on the client based on its time zone.

If you want to test-drive these new features check out the Porcupine development version found at http://github.com/tkouts.

Post your comment


  • Hi Cristi,

    Thanks for your intererest in Porcupine. It's been almost two years of silince. I can fully understand your concerns.

    Throughout these years Porcupine has finally reached a point where it can be considered safe to use in production environments. This is why it has take me so long to release the next version.

    Thus, the good news is that there are actually companies out there that use Porcupine in production.

    Stay tuned for the upcoming release this summer.

    Thanks again.

    Posted by tkouts, 15/05/2011 2:43pm (8 years ago)

  • Greetings. What's the status for Porcupine ? I'm looking forward to see the next release !

    Posted by Cristi Constantin, 09/05/2011 12:20pm (8 years ago)

RSS feed for comments on this page | RSS feed for all comments

Clicky Web Analytics