Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

doc: Add explanation of when to use obstore's HttpStore vs obspec-utils AiohttpReadableStore

Open
#63 0 comments 2 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
2/5
Estimated time
1-3 hours
Newbie friendliness
52/100
Issue type
Documentation
Clarity
Mostly clear
Activity status
Stale
Tech stack
python
Domain
documentation

Research direction

Review the existing documentation and the AiohttpReadableStore and HttpStore APIs, using issue #50 for context on AiohttpStore limitations. Done means the docs clearly explain the preferred store, the WebDAV exception, HTTP listing and credential differences, and the caveat about current AiohttpStore improvements.

Written by the indexing model from the issue text.

Description

a common question that's worth addressing in the docs. The wisdom Kyle shared is that most times you'd prefer the AiohttpReadableStore unless using something that HttpStore is built for, like WebDAV. The reasoning is that obstore's underlying Rust crate focuses on object store-like backends (e.g., S3, GCS, Azure), but pure HTTP doesn't define the full set of actions of an object store. It's misleading to use HTTPStore for HTTP access, because the HTTP spec doesn't define list whereas HTTPStore (build of object storage) declares that list would be available.

"With aiohttp and obspec and obspec-utils you're able to declare that you're providing only, say, get, get ranges, while not falsely declaring that you're providing list, etc. Also, a generic HTTP client gives you full access to underlying credential methods. HTTPStore doesn't let you add, say, a query string with an API key, because it's not trying to serve as a fully generic HTTP client"

A caveat is that there are still improvements needed for the AiohttpStore (xref #50)

Dominant language
Python
Stars
12
Forks
3
PR merge metrics
No merged PRs in 30d

Getting set up

This project ships no dev container, Dockerfile or contributing guide, so setting up is up to you: start from its README, and see our first-contribution guide for the general steps.

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from developmentseed/obspec-utils

All issues in developmentseed/obspec-utils

Similar issues

More Python issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.