Skip to content

HTTP server that exposes stores, arrays, groups#3732

Draft
d-v-b wants to merge 3 commits intozarr-developers:mainfrom
d-v-b:feat/experimental-server
Draft

HTTP server that exposes stores, arrays, groups#3732
d-v-b wants to merge 3 commits intozarr-developers:mainfrom
d-v-b:feat/experimental-server

Conversation

@d-v-b
Copy link
Contributor

@d-v-b d-v-b commented Feb 28, 2026

This PR adds an experimental http server in experimental.serve. This server can expose stores over http. It can also expose arrays and groups over https. Exposing a store means exposing the entire key: value space of the store. Exposing an array means only exposing the metadata + chunks. Exposing a group means only exposing sub-groups and sub-arrays. See #3731 for more on this distinction.

The server is an optional dependency implemented via starlette. It handles byte-range reads and other http methods. CORS headers and allowed methods can be configured. I'm considering handling prefix requests like foo/bar by returning a simple HTML document that lists the visible keys under foo/bar/, for user-friendliness and to aid httpstore readers that use such responses for listing contents. I'd also like to implement convenience functions for kicking off a server from jupyter and a CLI.

Opening as a draft while I work on this.

@github-actions github-actions bot added the needs release notes Automatically applied to PRs which haven't added release notes label Feb 28, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

needs release notes Automatically applied to PRs which haven't added release notes

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant