#git #git2

asyncgit

allow using git2 in a asynchronous context

55 unstable releases

0.28.0 Dec 14, 2025
0.27.0 Jan 13, 2025
0.26.3 Jun 2, 2024
0.25.1 Mar 22, 2024
0.1.2 Mar 27, 2020

#450 in Concurrency

Download history 180/week @ 2025-10-13 177/week @ 2025-10-20 136/week @ 2025-10-27 188/week @ 2025-11-03 109/week @ 2025-11-10 127/week @ 2025-11-17 128/week @ 2025-11-24 119/week @ 2025-12-01 171/week @ 2025-12-08 441/week @ 2025-12-15 172/week @ 2025-12-22 112/week @ 2025-12-29 168/week @ 2026-01-05 148/week @ 2026-01-12 248/week @ 2026-01-19 153/week @ 2026-01-26

739 downloads per month
Used in 2 crates

MIT license

385KB
13K SLoC

AsyncGit is a library that provides non-blocking access to Git operations, enabling GitUI to perform potentially slow Git operations in the background while keeping the user interface responsive.

It also provides synchronous Git operations.

It wraps libraries like git2 and gix.


asyncgit

allow using git2 in an asynchronous context

This crate is designed as part of the gitui project.

asyncgit provides the primary interface to interact with git repositories. It is split into the main module and a sync part. The latter provides convenience wrapper for typical usage patterns against git repositories.

The primary goal however is to allow putting certain (potentially) long running git2 calls onto a thread pool.crossbeam-channel is then used to wait for a notification confirming the result.

In gitui this allows the main-thread and therefore the ui to stay responsive.

Dependencies

~51MB
~1M SLoC