`tlrepo` provides `ThreadLocalRepo`, a convenient way to share a `git2::Repository` object between threads. A standard `git2::Repository` object does not support sharing among threads without some form of synchronization. `tlrepo::ThreadLocalRepo` provides a convenient way to reopen the same repository on each thread, caching the opened repository thread-locally for reuse. You can create a `ThreadLocalRepo` by calling `ThreadLocalRepo::new`, or by using the extension trait `tlrepo::RepositoryExt` to call `.thread_local()` on an existing `git2::Repository`. You can share the `ThreadLocalRepo` across threads, calling `.get()` to get a `git2::Repository` object to work with.