CouchDB, an Apache project providing a Web-accessible, key-value database, is emerging as an essential technology for running Web applications offline.
CouchDB, which is being updated this week with release 0.10, itself is a Web server, with the ability to store bits and pieces of the Web application, said Chris Anderson, a committer on the project.
[ Find out how CouchDB stacks up against other new-school databases such as Amazon SimpleDB and Google App Engine in InfoWorld Test Center's review: "Slacker databases break all the old rules." | Cut straight to the key news for technology development and IT management with our once-a-day summary of the top tech news. Subscribe to the InfoWorld Daily newsletter. ]
"The Web application will be stored in the database and then the only client you need is the Web browser," Anderson said.
"The whole inspiration [behind CouchDB] from the beginning has been to do Lotus Notes-style synchronization so that wherever you are, you have all your data," Anderson said. Anderson is part of a new venture called Relaxed Technologies, which is building small business/office software that works in a Web browser and uses CouchDB for synchronization between disconnected instances of applications. Relaxed Technologies software will keep working when an Internet connection goes down.
CouchDB joins other offline application technologies such as Google Gears and Adobe AIR (Adobe Integrated Runtime). The main difference between CouchDB and a technology such as Gears is CouchDB offers the same application code running on the server and locally, Anderson said. Normally, developers have a lot of work to do to make an application run offline, he said.
"If you build a CouchDB application, it runs offline right away," said Anderson. Ad hoc synchronization can be done with a laptop, he said. Also, if a business uses CouchDB as its server technology and a server or the Internet goes down, the business can keep running, he said.
"CouchDB is pretty much the only open source project that can do offline synchronization," Anderson said. The database features a RESTful JSON API accessible from any environment allowing HTTP requests.
CouchDB is designed to run on PCs and servers, with support for mobile devices planned. Canonical supports CouchDB in the client version of Ubuntu Linux.
Version 0.10 features continuous replication. Users can link to CouchDB servers and stay up-to-date in real time. Cookie and OAuth authentication is also in the release, along with Windows build support. A 1.0 release is planned for later this year.
"For developers writing Web applications, CouchDB is designed to be just easier and [resulting in] less fuss" than relational databases or Java application servers, Anderson said.
The slogan of CouchDB is "relax," as in users can relax that their data is safe, he said. "We pride ourselves on having a very reliable storage engine," said Anderson.
"We're not trying to build the Ferrari of databases; we're trying to build the Honda Accord of databases and that's a little different sweet spot," Anderson said.
Developers can write a program for CouchDB and run it on a local machine or move it to a server or group of servers if the program becomes popular, Anderson said.
CouchDB developers are looking for someone to build a browser plug-in that would make it easier to offer CouchDB locally. "We'd love to see anyone come along and develop that," Anderson said.