Skip to main content

GitFleet is a high-performance Python library (powered by Rust) for managing and analyzing Git repositories in bulk. It supports asynchronous cloning, parallel git blame and commit analysis using Rayon, and integrates with GitHub, GitLab, and BitBucket APIs. Designed for large-scale repository analysis, GitFleet handles API token rotation, monitors rate limits, and provides detailed progress tracking across operations.

Project description

🚀 GitFleet

High-performance Git repository analysis and management in Python, powered by Rust

PyPI version License Build Status Documentation


⚡ Overview

GitFleet is a high-performance Python library built in Rust for asynchronous Git repository analysis at scale. It combines the speed and memory efficiency of Rust with the ease of use of Python's async/await syntax.

It supports bulk operations like:

  • Parallel git blame across many files (10-50x faster than pure Python)
  • Async cloning of hundreds of repositories with progress monitoring
  • GitHub, GitLab, and GitBucket integration with native API clients
  • API token rotation and rate limit monitoring to prevent 429 errors
  • Real-time progress tracking for long-running tasks

Ideal for:

  • Grading systems (e.g., student GitHub repos)
  • Research in software engineering and code evolution
  • DevOps and CI insights at scale
  • Custom git analytics platforms
  • Any application requiring efficient handling of multiple Git repositories

🔧 Features

  • Rayon-powered multithreaded Git operations
  • Asynchronous repo cloning with async/await
  • Integrated clients for GitHub, GitLab, GitBucket
  • Multiple token management with auto-rotation
  • Rate limit tracking and resilience
  • Modular architecture: easily extendable

📚 Documentation

Visit our comprehensive documentation for:

  • Detailed API reference
  • Usage examples
  • Provider integrations
  • Advanced configuration

📦 Installation

pip install gitfleet

Requires Python 3.8+ and a Rust toolchain for building native extensions. Pre-built wheels are available for most common platforms.


🚀 Quick Start

import asyncio
from gitfleet import RepoManager

async def main():
    manager = RepoManager()
    await manager.clone_repos([
        "https://github.com/user/repo1.git",
        "https://github.com/user/repo2.git"
    ])
    results = await manager.blame_all("target_file.py")
    print(results)

asyncio.run(main())

🔌 Integration

GitFleet is designed to interoperate with:

  • GitHub, GitLab, GitBucket via async clients
  • Jupyter notebooks (Pandas-friendly outputs)
  • Flask, FastAPI, and async dashboards (e.g., Plotly Dash)
  • CI/CD pipelines or grading systems

🛠 Architecture

Layer Technology Purpose
Rust Core git2, rayon Fast Git ops and parallelism
Python Interface PyO3, maturin Native bindings and async APIs
Async Clients httpx, aiohttp GitHub/GitLab API access
Token Manager Custom Multi-token rotation & rate monitoring

📈 Roadmap

  • Git diff and patch inspection
  • Repository graph & commit visualizations
  • CSV/JSON export for data analysis
  • Web dashboard example with live metrics

🤝 Contributing

We welcome contributions! To get started:

git clone https://github.com/bmeddeb/gitfleet
cd gitfleet
pip install -e ".[dev]"

Run tests with:

pytest

For more details on contributing, see our development documentation.


📄 License

MIT License


✨ Credits

GitFleet is inspired by the needs of large-scale Git analysis in grading, research, and dev tooling. Built with ❤️ using Rust + Python.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

gitfleet-0.2.8.tar.gz (157.3 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

gitfleet-0.2.8-cp313-none-win_amd64.whl (1.6 MB view details)

Uploaded CPython 3.13Windows x86-64

gitfleet-0.2.8-cp313-cp313-manylinux_2_34_x86_64.whl (3.9 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.34+ x86-64

gitfleet-0.2.8-cp313-cp313-macosx_11_0_arm64.whl (1.4 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

gitfleet-0.2.8-cp312-none-win_amd64.whl (1.6 MB view details)

Uploaded CPython 3.12Windows x86-64

gitfleet-0.2.8-cp312-cp312-manylinux_2_34_x86_64.whl (3.9 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.34+ x86-64

gitfleet-0.2.8-cp312-cp312-macosx_11_0_arm64.whl (1.4 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

gitfleet-0.2.8-cp311-none-win_amd64.whl (1.6 MB view details)

Uploaded CPython 3.11Windows x86-64

gitfleet-0.2.8-cp311-cp311-manylinux_2_34_x86_64.whl (3.9 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.34+ x86-64

gitfleet-0.2.8-cp311-cp311-macosx_11_0_arm64.whl (1.4 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

gitfleet-0.2.8-cp310-none-win_amd64.whl (1.6 MB view details)

Uploaded CPython 3.10Windows x86-64

gitfleet-0.2.8-cp310-cp310-manylinux_2_34_x86_64.whl (3.9 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.34+ x86-64

gitfleet-0.2.8-cp310-cp310-macosx_11_0_arm64.whl (1.4 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

gitfleet-0.2.8-cp39-none-win_amd64.whl (1.6 MB view details)

Uploaded CPython 3.9Windows x86-64

gitfleet-0.2.8-cp39-cp39-manylinux_2_34_x86_64.whl (3.9 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.34+ x86-64

gitfleet-0.2.8-cp39-cp39-macosx_11_0_arm64.whl (1.4 MB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

File details

Details for the file gitfleet-0.2.8.tar.gz.

File metadata

  • Download URL: gitfleet-0.2.8.tar.gz
  • Upload date:
  • Size: 157.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.17

File hashes

Hashes for gitfleet-0.2.8.tar.gz
Algorithm Hash digest
SHA256 78b4dc10f2c72bd6103b3e23f2ce7443a09fef50c8615286a07da075a8e4f70f
MD5 0279dc5d8f68922cd715a0bef2a84af8
BLAKE2b-256 eaeb7e85dd86d64bd1c2e07af7572384cd9ecc35e5b9e3497b498bd0bf7a11cd

See more details on using hashes here.

File details

Details for the file gitfleet-0.2.8-cp313-none-win_amd64.whl.

File metadata

  • Download URL: gitfleet-0.2.8-cp313-none-win_amd64.whl
  • Upload date:
  • Size: 1.6 MB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.3

File hashes

Hashes for gitfleet-0.2.8-cp313-none-win_amd64.whl
Algorithm Hash digest
SHA256 140c5cdb15d9b15dbb4ef46d23d96a6280e7ca305a93bffe2fe4ba28540583c8
MD5 1fe5252ef4f19a02f40401638f97b07e
BLAKE2b-256 ef8ccea7bac758ad28e97ed0f48016ebc87606eaa9b8e571da638f45cd3c6771

See more details on using hashes here.

File details

Details for the file gitfleet-0.2.8-cp313-cp313-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for gitfleet-0.2.8-cp313-cp313-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 65ffd61372faa86785483c315fed1a543a15e35b436ab58f2c90e17c6464589c
MD5 0b4a42f1f7f449a34c7a4b56d9638c45
BLAKE2b-256 8bf5d16d6a5e6b8386ff8c94b26b5b1412056bb8edcb9c78918ca40633c37b34

See more details on using hashes here.

File details

Details for the file gitfleet-0.2.8-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for gitfleet-0.2.8-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 09397a23bda8c0a7a0334bfe0b43b85dd2bd30f48e718f0d03b2155589511333
MD5 78a3890b7398073a8b291e96023851d9
BLAKE2b-256 cd91d449120491b84327a76130085fe8c06473ee9883709a3e9f81c0fbb263b1

See more details on using hashes here.

File details

Details for the file gitfleet-0.2.8-cp312-none-win_amd64.whl.

File metadata

  • Download URL: gitfleet-0.2.8-cp312-none-win_amd64.whl
  • Upload date:
  • Size: 1.6 MB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.10

File hashes

Hashes for gitfleet-0.2.8-cp312-none-win_amd64.whl
Algorithm Hash digest
SHA256 6e9dc7504d3fbd60ed6c89eae8a161442dbd6a625af0a50face72e6d4b3b903e
MD5 82ec0f9bef5fd1dfdd567999e27c666b
BLAKE2b-256 2e726bc63cbea85f4abdec13643e857c0d0d35cd57b3a754f92ca798119fc20f

See more details on using hashes here.

File details

Details for the file gitfleet-0.2.8-cp312-cp312-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for gitfleet-0.2.8-cp312-cp312-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 2449165cc5e0c188317078f360c43b5d3434a8a1c981fb4c61322323dcc83bfc
MD5 179305081e2964917d2abf5403599ce8
BLAKE2b-256 41b7a7018ceb077a8481e2539426eae8fae898b80117fbf00789fb4c6efbd8dc

See more details on using hashes here.

File details

Details for the file gitfleet-0.2.8-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for gitfleet-0.2.8-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 49b7cfb54a0afc45145a12281158d5f539f710ddbfbf35969f89a3a92cb88575
MD5 2ac5ac97b89f610f2f326c79e88cdb5f
BLAKE2b-256 4d223e8ec5a5c3cb5252b30e04f56d9b206f2e2a9b7bcc949bb00d5c1ccbacad

See more details on using hashes here.

File details

Details for the file gitfleet-0.2.8-cp311-none-win_amd64.whl.

File metadata

  • Download URL: gitfleet-0.2.8-cp311-none-win_amd64.whl
  • Upload date:
  • Size: 1.6 MB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.9

File hashes

Hashes for gitfleet-0.2.8-cp311-none-win_amd64.whl
Algorithm Hash digest
SHA256 de6de29779475b56a50bbdb568205c3815e69dd77f1504f736da11ee1036946a
MD5 ec9a16496f18ad72f563c2453b77d4b6
BLAKE2b-256 d5ffd3c466026b3ecc749698290d456ccf5bf1f7ae9693e286f2ed30a1fad714

See more details on using hashes here.

File details

Details for the file gitfleet-0.2.8-cp311-cp311-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for gitfleet-0.2.8-cp311-cp311-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 2552d5e6d4ca775b30ee4c0aec4c33628f910808a78c2332114e76df8c9c94bd
MD5 0d0ea3fce7c6e423fb1c9353f91e9f5d
BLAKE2b-256 2e22ab13a94fd9bcc4bf9dcf5be374f655bd59441506e8d20f524b499c97251f

See more details on using hashes here.

File details

Details for the file gitfleet-0.2.8-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for gitfleet-0.2.8-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 74b82300e2a96877f1bd18c76e364a6698d7303bf25591e4d56050fe4e090356
MD5 ed2a4a7234ef559a7eb4c6c469ed0fe0
BLAKE2b-256 9c2fb67a377f9a9a93598a1db67dc8abfbd7cc7ac31f55b70fc1a2eef78f6979

See more details on using hashes here.

File details

Details for the file gitfleet-0.2.8-cp310-none-win_amd64.whl.

File metadata

  • Download URL: gitfleet-0.2.8-cp310-none-win_amd64.whl
  • Upload date:
  • Size: 1.6 MB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.11

File hashes

Hashes for gitfleet-0.2.8-cp310-none-win_amd64.whl
Algorithm Hash digest
SHA256 f2c8da48f9e03ea3debd06dde7ab83577e43c856152b1b66ff777461bafd57ab
MD5 0f1532a3c9209164e3cfc2e2a6667ca3
BLAKE2b-256 3c50b92be01d0853381c9dc5cfccbf2a9b5b3109e47b97b821bb961d00df402d

See more details on using hashes here.

File details

Details for the file gitfleet-0.2.8-cp310-cp310-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for gitfleet-0.2.8-cp310-cp310-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 7ef7e6dffdacd3b70152b52cd59f848815578ae82dff55e0f1806353ef2bfaf6
MD5 509b0ebc2a8687c47d757638a84bd60b
BLAKE2b-256 b9e0a39657b98d31fd3d8aef6a0d0549312e88afd8eecfdb21aa4acf4d7922d3

See more details on using hashes here.

File details

Details for the file gitfleet-0.2.8-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for gitfleet-0.2.8-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e06b771f471915b9d22382d4abfe588c14ac1abef82db513fcd3198e743cfa3b
MD5 21f8c07ab10698811637921db9d3458a
BLAKE2b-256 9fd7970cb09e41edd738b50b1f28f894bb68636f54d60519dc5d87422d1aa071

See more details on using hashes here.

File details

Details for the file gitfleet-0.2.8-cp39-none-win_amd64.whl.

File metadata

  • Download URL: gitfleet-0.2.8-cp39-none-win_amd64.whl
  • Upload date:
  • Size: 1.6 MB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.9.13

File hashes

Hashes for gitfleet-0.2.8-cp39-none-win_amd64.whl
Algorithm Hash digest
SHA256 549aff4e0d3b99d08eafecd21bc54ebc622f8edb4f2d33ded72dbed17a266725
MD5 7eebb3b96a3c7a31032ab219d3386992
BLAKE2b-256 34ee099e669f66cfbcbc28afbcffded29b9dc1b6e600f39a078ff9ffa6a17981

See more details on using hashes here.

File details

Details for the file gitfleet-0.2.8-cp39-cp39-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for gitfleet-0.2.8-cp39-cp39-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 060950e7e88debfca43bbf248338c2d4c78b3e277d620f1402613b8e90361188
MD5 b0687bb41d8d81d91b2540febee0be72
BLAKE2b-256 ba0e138b9e7cdf18cc82fc2a9ee82ae27c68fe5cb879b65b2bd19025aa5ad809

See more details on using hashes here.

File details

Details for the file gitfleet-0.2.8-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for gitfleet-0.2.8-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 553385670858c31ddff02b40343e817ff105ff594b023a70e14c1d84c48e3831
MD5 cdda3b33f4ad8432652dbd271a3488e8
BLAKE2b-256 4180a7875d0754f12fe31e6722789ad1c1b8f4df89c76ceaedb74628deaea054

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page