2007/08/20 12:44:48.658 GMT-4

EmbedDB

In questo periodo sto sviluppando EmbedDB:
un object database, che intendo utilizzare in alcuni progetti ai quali sto lavorando.
I requisiti che stanno alla base del design di EmbedDB sono:
  • compatibilita'  con un utilizzo in ambienti embedded come smartphone, palmari e tabletPC;
  • interfaccia di I/O in XML;
  • facilita' di estensione e di personalizzazione;
  • supporto per diversi backend;
  • supporto multipiattaforma (almeno per WinCE/PocketPC e Linux).
Attualmente ne esiste una versione funzionante scritta in Python che utilizza SQLite  come backend.

Questa versione di EmbedDB viene attualmente utilizzata da Enumera (un software per la catalogazione di beni mobili)  ed e' abbastanza performante da potere essere tranquillamante utilizzata da un palmare.

Prevedo di realizzare delle altre versioni di EmbedDB da potere utilizzare anche in altri progetti ed, in particolare, nella nuova release di Axil, nella quale dovrebbe andare a svolgere il ruolo attualmente ricoperto da Axiom.

Nella attuale fase di sviluppo mi sto occupando del miglioramento del supporto di SQLite nella versione esistente di EmbedDB:
il punto sul quale sto concentrando gli sforzi e' l' eliminazione dell' utilizzo di pysqlite o APSW per l' interfacciamento tra Python ed SQLite.
E' infatti necessario utilizzare un interfaccia che consenta di aggirare le limitazioni, dovute all' utilizzo di tali librerie, nell' interazione con il database, in quanto non permettono di avere accesso a le funzionalita' piu' a basso livello del backend.

A tale scopo sto cercando di definire una interfaccia Python ad SQLite, basata sulle librerie (oramai incluse di default nella versione 2.5 del linguaggio) ctypes, che consenta di avere un accesso a tutte le funzionalita' messe a disposizione dal database senza rinunciare ad un layer software che permetta di astrarre da tutti quei dettagli che l'originale interfaccia C espone.

EmbedDB e' un progetto a lungo termine i  cui sviluppi futuri di prevedono:
  • una riscrittura (totale o parziale)  in C del codice Python;
  • l' aggiunta di un supporto ad altri backend come, ad esempio, QDBM o Tokyo Cabinet.

Posted by: swarzy.2007/08/20 12:44:48.658 GMT-4
Tags: xml sqlite python linux embeddb tokyo-cabinet orm ctypes wince odb qdbm pocketpc | Permalink

Post a comment





The CAPTCHA image

Please enter the letters shown in the image in the following text box. Provided by Captchas.net