Less a PR than a friendly hello and thanks and FYI #2

wants to merge 45 commits into


None yet

2 participants



For a whole bunch of reasons I have been investigating the IIIF Image API lately. As an exercise to better understand the various moving parts I forked your iiif package and started refactoring it so that the processing logic exists inside discrete Go packages rather than the server itself.

There was also a lot of work to define caching strategies for both derivatives and source images (because loading the same giant file to generate tiny slippy-map tiles is sad-making...)

I just merged all of that work in to my copy of master and things seem to work, which is nice because the next step is to write tools for generating derivatives out-of-band.


At this point our respective code is wildly out of sync that I am happy just creating a brand new repo (with proper credit of course :-) and we can continue to watch each other over the GitHubs. If you're interested in folding any of this work in to your code then I am happy to talk.

It is worth mentioning that I am planning to extend – and I don't have a good idea of what that actually means – the spec to do some things that we needed for images when I worked at the Cooper Hewitt [1,2] so maybe it's easier just to keep things in separate repos...

Anyway, thanks for all the work that you did! It was very helpful.

[1] http://labs.cooperhewitt.org/2013/b-is-for-beta/
[2] https://github.com/cooperhewitt/py-cooperhewitt-roboteyes

thisisaaronland and others added some commits Aug 27, 2016
thisisaaronland add basic setup script for ubuntu 17bab72
thisisaaronland what is the simplest caching (for tiles, not source images) 942f813
thisisaaronland note --cache flag in README f90b4f0
thisisaaronland move optional stuff to a place where people can make it more optional…
… more easily
thisisaaronland Merge branch 'ubuntu' of github.com:thisisaaronland/iiif into simple-…
@thisisaaronland thisisaaronland add simple example ee4ada3
@thisisaaronland thisisaaronland add README for example 7602bfc
thisisaaronland Merge branch 'example' of github.com:thisisaaronland/iiif into simple…
@thisisaaronland thisisaaronland notes 64387c8
thisisaaronland Merge branch 'example' of github.com:thisisaaronland/iiif into simple…
@thisisaaronland thisisaaronland fix link in example/README.md da0290f
thisisaaronland Merge branch 'example' of github.com:thisisaaronland/iiif into simple…
thisisaaronland break everything! start moving bits in to discrete packages 70eedff
thisisaaronland move more code around 5e3929e
thisisaaronland memcache and derivative image b163fb5
thisisaaronland move everything around; vendor things; make server thing light and si…
thisisaaronland start working through compile errors 3f7d500
thisisaaronland keep fixing build errors 57f343d
thisisaaronland use gorilla/mux because complex URI patterns; try bigcache; make it c…
…ompile; still doesn't work
thisisaaronland add source package; prove caching works; prove profile stuff works 785a9d1
thisisaaronland move config stuff in to separate package, Handler functions for all t…
…he handlers that read from config
thisisaaronland in-memory source c87745c
thisisaaronland start chipping away at the image stuff d18096c
thisisaaronland add a Dimensions interface 62cd1bc
thisisaaronland scrub identifier; move all the transformation logic out of image.go a…
…nd in to transformation.go
thisisaaronland chip away at compile errors 2d06ee6
thisisaaronland instructions for transformations 38ec2c1
thisisaaronland rename image/image.go to image/vips.go 679b230
thisisaaronland no more compile errors – no idea if it works... 31ebf95
thisisaaronland move all the Image interface stuff in to image.go; namespace all the …
…VIPS stuff; update cmd/iiif-server accordingly
thisisaaronland move all the Cache interface stuff into cache.go 21ccaaa
thisisaaronland add sample config 73bb88c
thisisaaronland fix graphics source lookup 24dc138
thisisaaronland documentation; add HasTransformation method; do not cache source imag…
…es because ... sigh
thisisaaronland docs f7dca9b
thisisaaronland docs ab7e19d
thisisaaronland docs 3a7510d
thisisaaronland docs b28eacb
thisisaaronland docs 9f98967
thisisaaronland remove templates (for now) d2e6da4
thisisaaronland docs 1e43279
thisisaaronland docs be64f62
thisisaaronland docs 625fcdd
thisisaaronland docs 73667ee
@thisisaaronland thisisaaronland Update README.md 0709235
greut commented Sep 1, 2016 edited

Thanks mate.

I've be following your changes with both interest and curiosity. This project was a way to get to learn Go as a language, so it's very good to have another project to look at and take inspiration from.

I've got no direct use of this project as it was only a way to see how it would compete with a Flask-based alternative (PIL).

I'm glad that it was useful to another being. I'll keep an eye on your go-iiif.

This PR can be closed as it feels to radical :-)

Cheers and best of luck!

@greut greut closed this Sep 1, 2016
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment