Voyage is an object persistence abstraction layer for Pharo.
Voyage is a common layer for different backends but currently it supports just two: an in-memory layer and a backend for the MongoDB database (http://mongodb.org). There is a third backend for GemStone/S 64 that is in the proof of concept stage.
Voyage is part of the upcoming "Pharo for the Enterprise 2" book, and Johan Fabry (along with Damien Cassou) has written a nice chapter on it: HTML / PDF
- http://smallworks.eu/web/blog/2013-06-14-voyage-the-adventure
- http://smallworks.eu/web/blog/2013-07-18-Voyage-advanced-queries
- Voyage by example, talk at ESUG 2014
###Install
Just install it from you Pharo catalog.
You can also install it executing scripts:
Metacello new
repository: 'github://pharo-nosql/voyage/mc';
baseline: 'Voyage';
load: 'mongo tests'.
Metacello new
repository: 'github://pharo-nosql/voyage/mc';
baseline: 'Voyage';
load: 'unqlite tests'.
Voyage-Tugrik is a GemStone/S 64 backend for Voyage that is based upon Tugrik a persistence layer for Pharo5.0 that is compatible with the MongoTalk Smalltalk API.
At this stage, Tugrik is passing all of the Mongo tests and Voyage-Tugrik is passing all of the Voyage tests. In total there are a little over 100 tests, so the work is far from complete, but it is encouraging to be at this stage.
The following are based on the GsDevKit_home installation instructions:
# Install GsDevKit_home
git clone https://github.com/GsDevKit/GsDevKit_home.git
cd GsDevKit_home
. bin/defHOME_PATH.env # define $GS_HOME in your shell ... needed when running GsDevKit_home shell commands
installServerClient
# Create tODE client
createClient tode
# Create Voyage stone
createStone -u http://gsdevkit.github.io/GsDevKit_home/Voyage.ston -i Voyage -l Voyage Voyage 3.3.1
# Create Voyage Pharo5.0 client
createClient -t pharo voyage -l -v Pharo5.0 -z $GS_HOME/shared/repos/voyage/.smalltalk-tugrik.ston
# Start interactive Voyage client
startClient voyage -s Voyage
(FileLocator imageDirectory / 'customClientLoad.st') fileIn