git2-curl
Backend for an HTTP transport in libgit2 powered by libcurl. Intended to be used with the git2 crate.
0.22.0
12M downloads/mo
#2786 most downloaded on crates.io
rust-lang/git2-rs
What this package is like to depend on
Last release 3 months ago
18 May 2026
Release timing varies
gaps range from 2 weeks to 1.5 years
Some releases are documented
notes for 10 of 31 stable releases
Nothing withdrawn
no release was ever pulled
12 years old
31 releases · first in 2015
1 release in the last 12 months
see the full history below
Release timeline
31 releases · Feb 2015 to May 2026Releases
latest 31-
0.22.018 May 2026 -
0.21.005 Jan 2025Release notes
Open source →Added
- Added experimental SHA256 repository support behind the new
unstable-sha256Cargo feature, along with*_extAPI variants that accept anObjectFormat. #1206 - Added
opts::set_cache_max_size()andopts::get_cached_memory(). #1188 - Added
Repository::object_format()and a newObjectFormatenum. #1204 - Added
Repository::set_config(). #1208 - Added
merge_file()along withMergeFileInput. #1210 - Added
Repository::refdb_compress()for packing loose refs. #1221 - Added public
Refdbtype, along withRepository::refdb()andRepository::set_refdb().Repository::refdb_compress()now delegates toRefdb::compress(). #1228 - Added
Revspec::into_objects(). #1230 - Added
BlameHunk::final_committer(),BlameHunk::orig_committer(),BlameHunk::summary(), andBlameHunk::summary_bytes(). #1231 - Implemented
CloneforReference. #1233 - Added
Repository::author_from_env()andRepository::committer_from_env(). #1237 - Added
impl From<Utf8Error> for Error. #1239
Changed
- ❗ The
ssh,https, andcredCargo features are no longer enabled by default. Previouslydefault = ["ssh", "https"]; nowdefault = []. Enable them explicitly if you rely on credential helpers or transport support. #1168 - ❗
CredentialHelperand theurldependency are now gated behind the newcredCargo feature. Enablingsshorhttpstransitively enablescred. #1168 - ❗ Updated to the 2021 edition. #1173
- ❗ Many string accessors that previously returned
Option<&str>now returnResult<&str, Error>orResult<Option<&str>, Error>, so callers can distinguish a missing value from a non-UTF-8 one. #1241 - ❗
BlameHunk::final_signature,BlameHunk::final_committer,BlameHunk::orig_signature, andBlameHunk::orig_committernow returnOptionto avoid segfaults when signature information is missing. #1254 - Bumped requirement to libgit2-sys 0.18.4, which updates libgit2 to 1.9.3. #1242
Fixed
- Fixed
MergeOptions::skip_reuc()to use the correctGIT_MERGE_SKIP_REUCflag. #1194 Repository::submodules()now returns anErrorwhen the underlyinggit_submodule_lookup()call to libgit2 fails, rather than panicking with a failed assertion. #1220Reference::is_valid_name()now propagates errors fromCStringconversion instead of panicking. #1229- Fixed
Remote::list()to return an empty list instead of erroring when the remote advertises no refs. #1250 ReferenceNamesnow returns anErrfor non-UTF-8 branch names instead of panicking. #1239
Documentation
- Added note regarding potentially confusing behavior of
git_checkout_head. #1149 - Added comments describing the
IndexAddOptionflags. #1163 - Updated README note about the
sshfeature. #1187 - Improved function docs for
Repository::tag_foreach(). #1190 - Fixed doc comment typo in
StatusOptions. #1199 - Fixed missing period in module documentation. #1219
- Small wording fix in
Signature::from_raw_const()docs. #1222 - Replaced discussion of missing gist in README. #1223
- Documented the bitflag methods for checking flags. #1224
- Clarified
CheckoutBuilder::update_index()documentation. #1232 - Added more missing documentation. #1235
- Fixed typo in
Repository::stash_save_ext()docs. #1245 - Added example showing retrieval of the latest commit for a file. #1243
- Replaced comma with period in
CheckoutBuilder::refresh()docs. #1252
Internals
- Dropped
civet/conduitfrom dev-dependencies. #1170 - Updated dependencies. #1171
- Fixed lockfile verification in CI. #1177
- Updated CI and documentation to cover feature combinations. #1182
- Listed all examples that may need HTTP and SSH. #1196
- Allowed publishing from any ref in the publish workflow. #1198
- Bumped
timefrom 0.3.41 to 0.3.47. #1215 - Added end-to-end test for branch name on initialization. #1244
- Added end-to-end test for stash count. #1246
- Added end-to-end tests demonstrating use of
Repository::statuses(). #1251 - Internal refactors preparing for experimental SHA256 OID support. #1201 #1205
- Added experimental SHA256 repository support behind the new
-
0.20.014 Jun 2024Release notes
Open source →Added
Debugis now implemented fortransport::Service#1074- Added
Repository::commondir#1079 - Added
Repository::merge_base_octopus#1088 - Restored impls for
PartialOrd,Ord, andHashfor bitflags types that were inadvertently removed in a prior release. #1096 - Added
CheckoutBuilder::disable_pathspec_match#1107 - Added
PackBuilder::write#1110
Changed
- ❗ Updated to libgit2 1.9.0 #1111
- ❗ Removed the
ssh_key_from_memoryCargo feature, it was unused. #1087 - ❗ Errors from
Tree::walkare now correctly reported to the caller. #1098 - ❗ The
trace_setcallback now takes a&[u8]instead of a&str. #1071 - ❗
Error::last_errornow returnsErrorinstead ofOption<Error>. #1072
Fixed
-
0.19.028 Aug 2023Release notes
Open source →Added
- Added
optsfunctions to control server timeouts (get_server_connect_timeout_in_milliseconds,set_server_connect_timeout_in_milliseconds,get_server_timeout_in_milliseconds,set_server_timeout_in_milliseconds), and addErrorCode::Timeout. #1052
Changed
Fixed
- Fixed some callbacks to relay the error from the callback to libgit2. #1043
- Added
-
0.18.002 Apr 2023Release notes
Open source →Added
- Added
Blame::blame_bufferfor getting blame data for a file that has been modified in memory. #981
Changed
- Updated to libgit2 1.7.0. #968
- Updated to libgit2 1.7.1. #982
- Switched from bitflags 1.x to 2.1. This brings some small changes to types generated by bitflags. #973
- Changed
Revwalk::with_hide_callbackto take a mutable reference to its callback to enforce type safety. #970 - Implemented
FusedIteratorfor many iterators that can support it. #955
Fixed
- Fixed builds with cargo's
-Zminimal-versions. #960
- Added
-
0.17.010 Jan 2023Release notes
Open source →Added
- Added
IntoIteratorimplementation forStatuses. #880 - Added
Reference::symbolic_set_target#893 - Added
Copy,Clone,Debug,PartialEq, andEqimplementations forAutotagOptionandFetchPrune. #889 - Added
EqandPartialEqimplementations forSignature. #890 - Added
Repository::discover_path. #883 - Added
Submodule::repo_init. #914 - Added
Tag::is_valid_name. #882 - Added
Repository::set_head_bytes. #931 - Added the
Indexertype which is a low-level API for storing and indexing pack files. #911 - Added
Index::find_prefix. #903 - Added support for the deprecated group-writeable blob mode. This adds a new variant to
FileMode. #887 - Added
PushCallbacks::push_negotiationcallback and the correspondingPushUpdatetype for getting receiving information about the updates to perform. #926
Changed
- Updated to libgit2 1.6.3. This brings in many changes, including better SSH host key support on Windows and better SSH host key algorithm negotiation. 1.6.3 is now the minimum supported version. #935
- Updated libssh2-sys from 0.2 to 0.3. This brings in numerous changes, including SHA2 algorithm support with RSA. #919
- Changed
RemoteCallbacks::credentialscallback error handler to correctly set the libgit2 error class. #918 DiffOptions::flagnow takes agit_diff_option_ttype. #935
- Added
-
0.16.028 Jul 2022Release notes
Open source →Changed
- Added ability to get the SSH host key and its type.
This includes an API breaking change to the
certificate_checkcallback. #909 - Updated to libgit2-sys 0.14.1+1.5.0
- Added ability to get the SSH host key and its type.
This includes an API breaking change to the
-
0.15.028 Feb 2022Release notes
Open source →Added
- Added
Repository::tag_annotation_createbindinggit_tag_annotation_create. #845 - Added the
Emailtype which represents a patch in mbox format for sending via email. Added theEmailCreateOptionsstruct to control formatting of the email. DeprecatesDiff::format_email, useEmail::from_diffinstead. #847 - Added
ErrorCode::Ownerto map to the newGIT_EOWNERerrors. #839 - Added
opts::set_verify_owner_validationto set whether or not ownership validation is performed. #839
Changed
- Updated to libgit2-sys 0.14.0+1.5.0
- Removed the
Iteratorimplementation forConfigEntriesdue to the unsound usage of the API which allowed values to be used after free. AddedConfigEntries::nextandConfigEntries::for_eachfor iterating over all entries in a safe manor. #854
- Added
-
0.14.119 Aug 2020 -
0.14.013 Mar 2020Release notes
Open source →Added
- Added
opts::get_extensionsandopts::set_extensionsto support git extensions. #791 - Added
PackBuilder::nameandPackBuilder::name_bytes. #806- Deprecated
PackBuilder::hash, usePackBuilder::nameinstead.
- Deprecated
- Added
FetchOptions::follow_redirectsandPushOptions::follow_redirects. #806 - Added
StatusOptions::rename_threshold. #806
Changed
- Updated to libgit2-sys 0.13.0+1.4.1 #806 #811
- Added
-
0.13.026 Feb 2020Nothing published for this version
-
0.12.012 Dec 2019Nothing published for this version
-
0.11.020 Aug 2019Nothing published for this version
-
0.10.124 Jul 2019Nothing published for this version
-
0.10.004 Jun 2019Nothing published for this version
-
0.9.013 Dec 2018Nothing published for this version
-
0.8.211 Oct 2018Nothing published for this version
-
0.8.115 Mar 2018Nothing published for this version
-
0.8.027 Feb 2018Nothing published for this version
-
0.7.008 Nov 2016Nothing published for this version
-
0.6.006 Oct 2016Nothing published for this version
-
0.5.026 May 2016Nothing published for this version
-
0.4.129 Apr 2016Nothing published for this version
-
0.4.022 Feb 2016Nothing published for this version
-
0.3.001 Aug 2015Nothing published for this version
-
0.2.420 Apr 2015Nothing published for this version
-
0.2.302 Apr 2015Nothing published for this version
-
0.2.225 Mar 2015Nothing published for this version
-
0.2.126 Feb 2015Nothing published for this version
-
0.2.025 Feb 2015Nothing published for this version
-
0.1.004 Feb 2015Nothing published for this version