# 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.

camlistore-0.1.zip
Or browse at Github: github.com/bradfitz/camlistore/tree/0.1

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.
- 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.