This page is no longer maintained — Please continue to the home page at www.scala-lang.org

a document-oriented database in Scala

1 reply
Andrey Somov
Joined: 2011-03-05,
User offline. Last seen 42 years 45 weeks ago.
Hi all,
if you use Apache CouchDB or if you wish to learn functional programming you may find this interesting.
I would like to introduce an attempt to re-write CouchDB into the Scala programming language. Since Erlang is a pure functional programming language and Scala is damn powerful the exercise seems to be possible.
Please note that the goal is not to copy ! The goal is to deliver a document-oriented database for JVM. Instead of creating something from scratch it is better to take a powerful idea which has proved to be successful.

The project is here: www.trophydb.org (Apache License, Version 2.0)

The project is at the very early stage.

Some information about the development process is here:
https://docs.google.com/document/pub?id=1QNSC-bwm_yklhYfRClQeFnruKOJdFD8...

At the moment (29-July-2011), the database cannot be launched. There are many tests which show the progress. Some core modules (including the B-Tree implementation) have been already ported to Scala. See the source.
   
If you wish to learn functional programming and you can help to port a few Erlang modules to Scala feel free to join and experiment !
If you are a Scala enthusiast you are welcome to contribute any improvements for the Scala code base.

Why to write CouchDB in Scala ?
1) It is fun !!!
2) CouchDB depends on a number of platform-specific components. It can be a challenge to install (http://wiki.apache.org/couchdb/Installation). Since JavaScript is included in Java 6, the pure Scala database will not depend on anything except Java 6.
3) because TrophyDB should not depend on a platform-specific libraries it can be used as an embedded database (or for tests)
4) sometimes there are non-technical reasons why only JVM applications may be used (especially for the enterprise environment)
5) Java is wide-spread

Feel free to ask questions !

Hope to see you soon :)
-
Andrey


Rohit Rai
Joined: 2011-07-29,
User offline. Last seen 42 years 45 weeks ago.
Re: a document-oriented database in Scala
That's an interesting project... I have always thought writing a DB or a Message Bus or KV store in scala will be so easy and so much fun. Never got to it as there so many options available and no project can allocate components to build a new DB!
but in the case of a JVM based DB, I'll suggest you take a look at OrientDB which is written in pure Java and is unique in that as it is an Hybrid DB implementing GraphDB and DocumentDB.http://www.orientechnologies.com/orient-db.htm
Regards,Rohit



On Fri, Jul 29, 2011 at 9:40 PM, Andrey Somov <trophybase [at] googlemail [dot] com> wrote:
Hi all,
if you use Apache CouchDB or if you wish to learn functional programming you may find this interesting.
I would like to introduce an attempt to re-write CouchDB into the Scala programming language. Since Erlang is a pure functional programming language and Scala is damn powerful the exercise seems to be possible.
Please note that the goal is not to copy ! The goal is to deliver a document-oriented database for JVM. Instead of creating something from scratch it is better to take a powerful idea which has proved to be successful.

The project is here: www.trophydb.org (Apache License, Version 2.0)

The project is at the very early stage.

Some information about the development process is here:
https://docs.google.com/document/pub?id=1QNSC-bwm_yklhYfRClQeFnruKOJdFD8ceTHVs16dcAg

At the moment (29-July-2011), the database cannot be launched. There are many tests which show the progress. Some core modules (including the B-Tree implementation) have been already ported to Scala. See the source.
   
If you wish to learn functional programming and you can help to port a few Erlang modules to Scala feel free to join and experiment !
If you are a Scala enthusiast you are welcome to contribute any improvements for the Scala code base.

Why to write CouchDB in Scala ?
1) It is fun !!!
2) CouchDB depends on a number of platform-specific components. It can be a challenge to install (http://wiki.apache.org/couchdb/Installation). Since JavaScript is included in Java 6, the pure Scala database will not depend on anything except Java 6.
3) because TrophyDB should not depend on a platform-specific libraries it can be used as an embedded database (or for tests)
4) sometimes there are non-technical reasons why only JVM applications may be used (especially for the enterprise environment)
5) Java is wide-spread

Feel free to ask questions !

Hope to see you soon :)
-
Andrey



Copyright © 2012 École Polytechnique Fédérale de Lausanne (EPFL), Lausanne, Switzerland