Camlistore: Android, ARM, App Engine, anywhere.

25 June 2014

Brad Fitzpatrick

Gopher, Google

Me

Camlistore

Camlistore

Camlistore

Stores on:

Camlistore screenshots

Web UI

Location search

Panos

Paris + Portrait

Non-images

FUSE

Android

Camlistore Demo

Camlistore does much, in many places

Camlistore

does:

on:

Desktops, personal servers

$ go {get,build,install,test} camlistore.org/{cmd,pkg,server}/...

Raspberry Pi

$ GOARCH=arm GOOS=linux go build camlistore.org/server/camlistored

App Engine

// +build !appengine

Cloud

fileembed

Definition:

package fileembed
func (f *Files) Open(filename string) (http.File, error)

Use in Camlistore:

package server
uistatic.Files = &fileembed.Files{
    DirFallback: ui.uiDir,
    Listable:    true,
    // In dev_appserver, allow edit-and-reload without
    // restarting. In production, though, it's faster to just
    // slurp it in.
    SlurpToMemory: uistatic.IsProdAppEngine,
}

Camlistore's genfileembed

$ genfileembed ./path/to/dir

Embedding resources

Web server

FUSE

Android

Command-line tools

$ cmdtool [--global=foo] subcmd [--subcommand opts]

In summary

Go is awesome and runs lots of places, easily.

演讲者

25 June 2014