{"action":"created","issue":{"url":"https://api.github.com/repos/alimanfoo/zarr/issues/21","repository_url":"https://api.github.com/repos/alimanfoo/zarr","labels_url":"https://api.github.com/repos/alimanfoo/zarr/issues/21/labels{/name}","comments_url":"https://api.github.com/repos/alimanfoo/zarr/issues/21/comments","events_url":"https://api.github.com/repos/alimanfoo/zarr/issues/21/events","html_url":"https://github.com/alimanfoo/zarr/issues/21","id":148509290,"number":21,"title":"Generalize to other storage systems","user":{"login":"mrocklin","id":306380,"avatar_url":"https://avatars.githubusercontent.com/u/306380?v=3","gravatar_id":"","url":"https://api.github.com/users/mrocklin","html_url":"https://github.com/mrocklin","followers_url":"https://api.github.com/users/mrocklin/followers","following_url":"https://api.github.com/users/mrocklin/following{/other_user}","gists_url":"https://api.github.com/users/mrocklin/gists{/gist_id}","starred_url":"https://api.github.com/users/mrocklin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mrocklin/subscriptions","organizations_url":"https://api.github.com/users/mrocklin/orgs","repos_url":"https://api.github.com/users/mrocklin/repos","events_url":"https://api.github.com/users/mrocklin/events{/privacy}","received_events_url":"https://api.github.com/users/mrocklin/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":12,"created_at":"2016-04-14T23:13:36Z","updated_at":"2016-04-15T17:16:13Z","closed_at":null,"body":"I want something very similar to `zarr` on S3 and I'm pondering the easiest way to get there.  One approach is to generalize `zarr` to accept pluggable byte storage solutions.\r\n\r\nCurrently, I believe that `zarr` effectively treats the file system as a `MutableMapping` into which it can deposit and retrieve bytes.  If this is the case then what are your thoughts on actually using the `MutableMapping` interface instead of touching files directly?  That way I could provide MutableMappings that use file systems, zip files, s3, hdfs, etc..  This nicely isolates a lot of the \"where do I put this block of bytes\" logic from the array slicing and compression logic.\r\n\r\nFor concreteness, here is a `MutableMapping` that loads/stores data in a directory on the file system.  https://github.com/mrocklin/zict/blob/master/zict/file.py"},"comment":{"url":"https://api.github.com/repos/alimanfoo/zarr/issues/comments/210551867","html_url":"https://github.com/alimanfoo/zarr/issues/21#issuecomment-210551867","issue_url":"https://api.github.com/repos/alimanfoo/zarr/issues/21","id":210551867,"user":{"login":"mrocklin","id":306380,"avatar_url":"https://avatars.githubusercontent.com/u/306380?v=3","gravatar_id":"","url":"https://api.github.com/users/mrocklin","html_url":"https://github.com/mrocklin","followers_url":"https://api.github.com/users/mrocklin/followers","following_url":"https://api.github.com/users/mrocklin/following{/other_user}","gists_url":"https://api.github.com/users/mrocklin/gists{/gist_id}","starred_url":"https://api.github.com/users/mrocklin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mrocklin/subscriptions","organizations_url":"https://api.github.com/users/mrocklin/orgs","repos_url":"https://api.github.com/users/mrocklin/repos","events_url":"https://api.github.com/users/mrocklin/events{/privacy}","received_events_url":"https://api.github.com/users/mrocklin/received_events","type":"User","site_admin":false},"created_at":"2016-04-15T17:16:13Z","updated_at":"2016-04-15T17:16:13Z","body":"@alimanfoo can you provide a more detailed list of steps that would be necessary to accomplish this?  How would you go about implementing this?"}}