PackageTrack
Sign in Get early access

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 2026
2016 2017 2018 2019 2020 2021 2022 2023 2024 2025 2026
Release Pre-release

Releases

latest 31
  1. 0.22.0 18 May 2026
    Release notes Open source →
  2. 0.21.0 05 Jan 2025
    Release notes

    0.20.4...main

    Added

    • Added experimental SHA256 repository support behind the new unstable-sha256 Cargo feature, along with *_ext API variants that accept an ObjectFormat. #1206
    • Added opts::set_cache_max_size() and opts::get_cached_memory(). #1188
    • Added Repository::object_format() and a new ObjectFormat enum. #1204
    • Added Repository::set_config(). #1208
    • Added merge_file() along with MergeFileInput. #1210
    • Added Repository::refdb_compress() for packing loose refs. #1221
    • Added public Refdb type, along with Repository::refdb() and Repository::set_refdb(). Repository::refdb_compress() now delegates to Refdb::compress(). #1228
    • Added Revspec::into_objects(). #1230
    • Added BlameHunk::final_committer(), BlameHunk::orig_committer(), BlameHunk::summary(), and BlameHunk::summary_bytes(). #1231
    • Implemented Clone for Reference. #1233
    • Added Repository::author_from_env() and Repository::committer_from_env(). #1237
    • Added impl From<Utf8Error> for Error. #1239

    Changed

    • ❗ The ssh, https, and cred Cargo features are no longer enabled by default. Previously default = ["ssh", "https"]; now default = []. Enable them explicitly if you rely on credential helpers or transport support. #1168
    • CredentialHelper and the url dependency are now gated behind the new cred Cargo feature. Enabling ssh or https transitively enables cred. #1168
    • ❗ Updated to the 2021 edition. #1173
    • ❗ Many string accessors that previously returned Option<&str> now return Result<&str, Error> or Result<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, and BlameHunk::orig_committer now return Option to 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 correct GIT_MERGE_SKIP_REUC flag. #1194
    • Repository::submodules() now returns an Error when the underlying git_submodule_lookup() call to libgit2 fails, rather than panicking with a failed assertion. #1220
    • Reference::is_valid_name() now propagates errors from CString conversion instead of panicking. #1229
    • Fixed Remote::list() to return an empty list instead of erroring when the remote advertises no refs. #1250
    • ReferenceNames now returns an Err for 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 IndexAddOption flags. #1163
    • Updated README note about the ssh feature. #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/conduit from 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 time from 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
    Open source →
    Release notes Open source →
  3. 0.20.0 14 Jun 2024
    Release notes

    0.19.0...0.20.0

    Added

    • Debug is now implemented for transport::Service #1074
    • Added Repository::commondir #1079
    • Added Repository::merge_base_octopus #1088
    • Restored impls for PartialOrd, Ord, and Hash for 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_memory Cargo feature, it was unused. #1087
    • ❗ Errors from Tree::walk are now correctly reported to the caller. #1098
    • ❗ The trace_set callback now takes a &[u8] instead of a &str. #1071
    • Error::last_error now returns Error instead of Option<Error>. #1072

    Fixed

    • Fixed OdbReader::read return value. #1061
    • When a credential helper executes a shell command, don't pop open a console window on Windows. #1075
    Open source →
    Release notes Open source →
  4. 0.19.0 28 Aug 2023
    Release notes

    0.18.3...0.19.0

    Added

    • Added opts functions 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 add ErrorCode::Timeout. #1052

    Changed

    • ❗ Updated to libgit2 1.8.1 #1032
    • Reduced size of the Error struct. #1053

    Fixed

    • Fixed some callbacks to relay the error from the callback to libgit2. #1043
    Open source →
    Release notes Open source →
  5. 0.18.0 02 Apr 2023
    Release notes

    0.17.2...0.18.0

    Added

    • Added Blame::blame_buffer for 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_callback to take a mutable reference to its callback to enforce type safety. #970
    • Implemented FusedIterator for many iterators that can support it. #955

    Fixed

    • Fixed builds with cargo's -Zminimal-versions. #960
    Open source →
    Release notes Open source →
  6. 0.17.0 10 Jan 2023
    Release notes

    0.16.1...0.17.0

    Added

    • Added IntoIterator implementation for Statuses. #880
    • Added Reference::symbolic_set_target #893
    • Added Copy, Clone, Debug, PartialEq, and Eq implementations for AutotagOption and FetchPrune. #889
    • Added Eq and PartialEq implementations for Signature. #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 Indexer type 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_negotiation callback and the corresponding PushUpdate type 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::credentials callback error handler to correctly set the libgit2 error class. #918
    • DiffOptions::flag now takes a git_diff_option_t type. #935
    Open source →
    Release notes Open source →
  7. 0.16.0 28 Jul 2022
    Release notes

    0.15.0...0.16.0

    Changed

    • Added ability to get the SSH host key and its type. This includes an API breaking change to the certificate_check callback. #909
    • Updated to libgit2-sys 0.14.1+1.5.0
    Open source →
    Release notes Open source →
  8. 0.15.0 28 Feb 2022
    Release notes

    0.14.4...0.15.0

    Added

    • Added Repository::tag_annotation_create binding git_tag_annotation_create. #845
    • Added the Email type which represents a patch in mbox format for sending via email. Added the EmailCreateOptions struct to control formatting of the email. Deprecates Diff::format_email, use Email::from_diff instead. #847
    • Added ErrorCode::Owner to map to the new GIT_EOWNER errors. #839
    • Added opts::set_verify_owner_validation to set whether or not ownership validation is performed. #839

    Changed

    • Updated to libgit2-sys 0.14.0+1.5.0
    • Removed the Iterator implementation for ConfigEntries due to the unsound usage of the API which allowed values to be used after free. Added ConfigEntries::next and ConfigEntries::for_each for iterating over all entries in a safe manor. #854
    Open source →
    Release notes Open source →
  9. 0.14.1 19 Aug 2020
    Release notes Open source →
  10. 0.14.0 13 Mar 2020
    Release notes

    0.13.25...0.14.0

    Added

    • Added opts::get_extensions and opts::set_extensions to support git extensions. #791
    • Added PackBuilder::name and PackBuilder::name_bytes. #806
      • Deprecated PackBuilder::hash, use PackBuilder::name instead.
    • Added FetchOptions::follow_redirects and PushOptions::follow_redirects. #806
    • Added StatusOptions::rename_threshold. #806

    Changed

    Open source →
  11. 0.13.0 26 Feb 2020

    Nothing published for this version

  12. 0.12.0 12 Dec 2019

    Nothing published for this version

  13. 0.11.0 20 Aug 2019

    Nothing published for this version

  14. 0.10.1 24 Jul 2019

    Nothing published for this version

  15. 0.10.0 04 Jun 2019

    Nothing published for this version

  16. 0.9.0 13 Dec 2018

    Nothing published for this version

  17. 0.8.2 11 Oct 2018

    Nothing published for this version

  18. 0.8.1 15 Mar 2018

    Nothing published for this version

  19. 0.8.0 27 Feb 2018

    Nothing published for this version

  20. 0.7.0 08 Nov 2016

    Nothing published for this version

  21. 0.6.0 06 Oct 2016

    Nothing published for this version

  22. 0.5.0 26 May 2016

    Nothing published for this version

  23. 0.4.1 29 Apr 2016

    Nothing published for this version

  24. 0.4.0 22 Feb 2016

    Nothing published for this version

  25. 0.3.0 01 Aug 2015

    Nothing published for this version

  26. 0.2.4 20 Apr 2015

    Nothing published for this version

  27. 0.2.3 02 Apr 2015

    Nothing published for this version

  28. 0.2.2 25 Mar 2015

    Nothing published for this version

  29. 0.2.1 26 Feb 2015

    Nothing published for this version

  30. 0.2.0 25 Feb 2015

    Nothing published for this version

  31. 0.1.0 04 Feb 2015

    Nothing published for this version

Every package, every release, already written down.

The archive is open and free. Watching your own project is what we are building next.

Browse the archive