git-vdb 0.3.0

An embedded vector database backed by immutable Git trees
Documentation
# Persistence and reopening

`Store::open` accepts bare and ordinary Git repositories. It creates a bare
repository only when the path is missing or an existing directory is empty. A
nonempty directory that is not a repository is rejected without changing it.

```rust
use git_vdb::{open, Point};

# fn main() -> git_vdb::Result<()> {
# let temporary = tempfile::TempDir::new()?;
let path = temporary.path().join("vectors.git");
open(&path)?.collection("docs").upsert([
    Point::new("stable-id", [1.0, 0.0]),
])?;

let reopened = open(&path)?.collection("docs");
assert_eq!(reopened.count()?, 1);
# Ok(())
# }
```

Collection handles are inexpensive and can be cloned. Reads never create a
missing collection. The first nonempty upsert creates it and infers its
dimension; explicitly configured empty collections remain available through
`Database::create_collection`.