Release 0.1 ("Grenoble")

2013-06-11

After three years of development, we're proud to release our first version of Camlistore, 0.1, codename "Grenoble", the beautiful city where we're currently releasing it from.

As reflected in the version number, Camlistore is not yet done, but it's at least ready for people to start using and playing with. We've been using it ourselves for a year.

We plan to do subsequent releases in a more timely fashion.

What works

Linux and OS X support. And probably any Unix.

Command-line tools: camput : upload blobs, files, or directories (any size). The camput tool can also make share claims to share those resources with others, or can be used to make raw permanodes & claims. camget : get blobs or files (not directories), either your own, or from friends' Camlistore servers if they've shared with you. cammount : FUSE-mount your Camlistore (Linux and OS X only): either static directories (e.g. backups from camput), or a virtual "recent" directories of recent files uploaded (e.g. from your Android phone) camtool : additional swiss-army knife tools, and manual sync tool ("camtool sync").

camlistored : the server.

: the server. Web UI (optional part of the server, on by default). Not great, but lets you browse your Camlistore resources.

Android client: upload photos ("Share to Camlistore")

Blob storage options: local disk, Amazon S3, Google Cloud Storage, ...

Search index storage options: in-memory, SQLite, MySQL, Postgres, Mongo, ...

All sorts of replication: camlistored : The server supports both asynchronous and synchronous replication from incoming blobs to any storage backend, which includes other remote Camlistore servers camtool sync : The camtool command supports syncing from servers (or local disk blob directories) to other servers (or other local disk blob directories), as well as a "third-leg" mode, where you can sync from A to B> by using the network to communicate differences, but instead copying missing blobs to destination C (e.g. a local portable harddisk to be manually transported to B )

The server and command-line tools are written in Go, so it runs everywhere, and easily (no library versioning stress). Just a single binary to copy to your Raspberry Pi running NetBSD or Linux or whatever.

Sharding, mirroring, unioning, ...

What doesn't work (or work well)

Things currently known to be broken or not yet finished:

Windows support. Has worked at times, but may currently be broken again. It will improve and hopefully stay stable in future releases.

iOS client. Nascent.

WebDAV server (for mounting your Camlistore resources on Windows) is currently broken, but once worked.

App Engine support. App Engine used to work, but is currently broken until a new App Engine SDK comes out with Go 1.1 support (soon).

Encryption. Designed, but not implemented.

The web UI could use some JavaScript / CSS / design love.

What's coming

Much is planned:

Much more documentation

Photo gallery & blog serving

More sharing support

Encryption

Import from social networks & web services

Fixing all the broken things.

Optimizations

Better, sexier web interface

Easier to install and use

Get involved!

We welcome feedback, feature requests, bug reports, and code contributions!

Feel free to email us on our mailing list, and/or file a bug (or see existing bugs).

While we welcome user bug reports, we also welcome code contributions. See the Contributing page for details. While most the codebase (the server and command-line tools) are written in Go, there's also a lot of JavaScript which needs love, as well as Java (for Android) and Objective C (for iOS). Or anything useful you'd like to contribute.