Curl Blog

Previous Next
6

Curl announced the first release of the CDK yesterday. This makes the popular SQLite database engine available for use by Curl applets, via the open source Curl Data Kit Project.

It has always made sense to me that rich client applications should be able to enjoy the power of SQL for local data porcessing, so when I became aware the open source SQLite engine early last year, the potential synergy with Curl was clear. SQL is the classic example of a domain specific language, and SQLite is a profoundly impressive implementation of its essence as a lightweight, portable, open source library.

While we're often inclined here towards "Curl all the way down" solutions, because of the power and coherence of the Curl language and platform, it usually makes sense to avoid reinventing the wheel. When useful functionality is available as a library for the host platform, the Curl External Libraries API can be used to "internalize" its functionality as a Curl class, and this was the approach taken with SQLite for the CDK.

This first CDK release exposes most of the SQLite API to Curl, including both the fundamental database and statement functionality, and the extension points including attached databases, notification, progress, authorization, and function definition. It also is fully integrated with the Curl Data Management and Display, so standard Curl techniques for presentation and manipulation of data can be used.

I hope the CDK proves to be useful as the basis for local data storage for Curl applications. There's a wide range of practices (and opinions) about how to bridge the object oriented and relational paradigms, so it will be interesting to see how the demands of those applications drive future CDK product evolution. Please download the CDK, try it out, and let us know what you think.

The focus for Curl Data Kit release 1.0 was to bring the power of SQL to Curl applications. We're looking forward to future CDK releases making further progress for Curl data integration.



Add a comment Leave a comment on this blog post.
Jul 9, 2008 5:40 AM Reply Click to view URPradhan's profile URPradhan

I believe its ONLY for API v6.0 and still no official support for Nitro (correct me).

Still a big question for data synchronization for OCC. Is there any future plan for data synchronization suport in Curl way ?

Recently Adobe announced LCDS for data synchronization for AIR/Flex/Flash application. The presentation can be found at :: http://www.prayank.net/flexblog/index.php/2008/05/28/data-synchronization-patterns-in-flex-applications/

Thank you

Jul 9, 2008 12:19 PM Reply Click to view Duke's profile Duke in response to: URPradhan

Nitro (Curl 7.0) is still a beta release, so nothing is supported for it yet. I think it will have the SQLite API built into the RTE (maybe with some changes from what is in the CDK) and make that SQLite functionality available to unprivileged applets. Someone else might say more about that and the synchronization aspect, as was previously discussed (to the limited extent possible at this time) in {message:id=1784}

Jul 9, 2008 12:20 PM Reply Click to view Duke's profile Duke in response to: Duke

That last link did not come out as I expected, it is http://developers.curl.com/message/1784#1784

Jul 9, 2008 2:13 PM Reply Click to view dmccrae's profile dmccrae in response to: Duke

Good point. Some Nitro demos use a release 7 CDK library, but there is no downloadable distribution. The CDK Project trunk in subversion is release 7, so you can get the source, and use it. I'll announce when a distribution is available.

The Nitro beta incorporates the SQLite engine in the curl RTE (as package CURL.IO.SQLITE-LIBRARY). This has several benefits: it does not require privilege to use, adheres to the Curl security model, and reduces the download size of the CDK by eliminating the platform specific executables. Nitro applications using SQLite still use the CDK, which provides the Curl API described above, around the SQLite engine.

As you say, data synchronization is important for OCC applications, (and elsewhere, for that matter), and the availability of local SQL storage is a useful substrate for many use cases. Stay tuned for further announcements about future directions of Curl Data Kit project.

Jul 21, 2008 11:16 PM Reply Click to view URPradhan's profile URPradhan in response to: dmccrae

I've got the CDK source and modified the API version to 7.0 and its working fine with my Nitro beta. Is only changing the herald is sufficient ?

Thanx

Jul 22, 2008 1:42 PM Reply Click to view Duke's profile Duke in response to: URPradhan

It is likely that it will work just by changing the API versions in the heralds, but I expect by the time of the official non-beta 7.0 there might be reasons to want a new CDK to take advantage of new APIs.