Crate git2_curl

source ·
Expand description

A crate for using libcurl as a backend for HTTP git requests with git2-rs.

This crate provides one public function, register, which will register a custom HTTP transport with libcurl for any HTTP requests made by libgit2. At this time the register function is unsafe for the same reasons that git2::transport::register is also unsafe.

It is not recommended to use this crate wherever possible. The current libcurl backend used, curl-rust, only supports executing a request in one method call implying no streaming support. This consequently means that when a repository is cloned the entire contents of the repo are downloaded into memory, and then written off to disk by libgit2 afterwards. It should be possible to alleviate this problem in the future.

NOTE: At this time this crate likely does not support a git push operation, only clones.


  • Register the libcurl backend for HTTP requests made by libgit2.