# 🐙 GitLake
> Um mini data-lake versionado, leve e open-source, usando **GitHub + pandas + requests**
O **GitLake** é um framework simples e poderoso que permite salvar, versionar e gerenciar **coleções de dados** diretamente em repositórios do GitHub.
Ideal para projetos de dados, pipelines, protótipos de machine learning e experimentos que precisam de um **repositório remoto e versionado**, sem a complexidade e o custo de uma infraestrutura em nuvem.
---
## 🚀 Instalação
Via PyPI (em breve):
``pip install gitlake``
Ou instalando manualmente:
``git clone https://github.com/carloscorvaum/gitlake.git``
<br>
``cd gitlake``
<br>
``pip install``
## 🧠 Funcionalidades principais <br>
📁 Gerenciamento de coleções de DataFrames diretamente no GitHub <br>
💾 Suporte a formatos: csv, json, parquet <br>
✍️ Modos de escrita: overwrite, append <br>
🕒 Controle de metadados: created_at, updated_at <br>
🔐 Controle de versionamento Git <br>
🗑️ Exclusão lógica e física de coleções <br>
🔄 Totalmente baseado em GitHub como backend remoto <br>
---
## 📦 Requisitos
- python 3.9+ <br>
- pandas <br>
- requests <br>
- pyarrow <br>
Instalados automaticamente via:
``pip install gitlake``
---
## 📁 Estrutura do gitlake recomendada
```
.
├── metadata/
│ └── collections_registry.json # Registro de todas as coleções
└── data/
├── raw/
│ └── raw.parquet # Dados da coleção
├── bronze/
│ └── bronze.parquet
└── silver/
└── silver.parquet
```
---
## 🔐 Autenticação
Você precisa de um GitHub Personal Access Token (PAT) com permissão para ler e escrever no repositório desejado.
Gere um token aqui:
https://github.com/settings/tokens
Use esse token com segurança. Para repositórios privados, ele é obrigatório.
---
## 🧪 Casos de uso
- Publicar datasets com versionamento
- Salvar resultados de ETLs diretamente no GitHub
- Criar um "data catalog" simples para seu time
- Compartilhar coleções de dados versionadas em repositórios abertos
Raw data
{
"_id": null,
"home_page": "https://github.com/carloscorvaum/gitlake",
"name": "gitlake",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.9",
"maintainer_email": null,
"keywords": "data-lake, github, git, data, data-analytics, data-engineer, engenharia-de-dados, gitlake",
"author": "Carlos Corvaum",
"author_email": "Carlos Corvaum <carloscorvaum@icloud.com>",
"download_url": "https://files.pythonhosted.org/packages/bd/7e/11a3065d778ad04eecb03627a8461c6c871461ac5deb0c67dd3673bdf470/gitlake-0.1.1.tar.gz",
"platform": null,
"description": "# \ud83d\udc19 GitLake\r\n\r\n> Um mini data-lake versionado, leve e open-source, usando **GitHub + pandas + requests**\r\n\r\nO **GitLake** \u00e9 um framework simples e poderoso que permite salvar, versionar e gerenciar **cole\u00e7\u00f5es de dados** diretamente em reposit\u00f3rios do GitHub.\r\n\r\nIdeal para projetos de dados, pipelines, prot\u00f3tipos de machine learning e experimentos que precisam de um **reposit\u00f3rio remoto e versionado**, sem a complexidade e o custo de uma infraestrutura em nuvem.\r\n\r\n---\r\n\r\n## \ud83d\ude80 Instala\u00e7\u00e3o\r\n\r\nVia PyPI (em breve):\r\n``pip install gitlake``\r\n\r\nOu instalando manualmente:\r\n\r\n``git clone https://github.com/carloscorvaum/gitlake.git``\r\n<br>\r\n``cd gitlake``\r\n<br>\r\n``pip install``\r\n\r\n## \ud83e\udde0 Funcionalidades principais <br>\r\n\r\n\ud83d\udcc1 Gerenciamento de cole\u00e7\u00f5es de DataFrames diretamente no GitHub <br>\r\n\ud83d\udcbe Suporte a formatos: csv, json, parquet <br>\r\n\u270d\ufe0f Modos de escrita: overwrite, append <br>\r\n\ud83d\udd52 Controle de metadados: created_at, updated_at <br>\r\n\ud83d\udd10 Controle de versionamento Git <br>\r\n\ud83d\uddd1\ufe0f Exclus\u00e3o l\u00f3gica e f\u00edsica de cole\u00e7\u00f5es <br>\r\n\ud83d\udd04 Totalmente baseado em GitHub como backend remoto <br>\r\n\r\n---\r\n\r\n## \ud83d\udce6 Requisitos\r\n\r\n- python 3.9+ <br>\r\n- pandas <br>\r\n- requests <br>\r\n- pyarrow <br>\r\n\r\nInstalados automaticamente via:\r\n``pip install gitlake``\r\n\r\n---\r\n\r\n## \ud83d\udcc1 Estrutura do gitlake recomendada\r\n\r\n```\r\n.\r\n\u251c\u2500\u2500 metadata/\r\n\u2502 \u2514\u2500\u2500 collections_registry.json # Registro de todas as cole\u00e7\u00f5es\r\n\u2514\u2500\u2500 data/\r\n \u251c\u2500\u2500 raw/\r\n \u2502 \u2514\u2500\u2500 raw.parquet # Dados da cole\u00e7\u00e3o\r\n \u251c\u2500\u2500 bronze/\r\n \u2502 \u2514\u2500\u2500 bronze.parquet\r\n \u2514\u2500\u2500 silver/\r\n \u2514\u2500\u2500 silver.parquet\r\n```\r\n\r\n---\r\n\r\n## \ud83d\udd10 Autentica\u00e7\u00e3o\r\n\r\nVoc\u00ea precisa de um GitHub Personal Access Token (PAT) com permiss\u00e3o para ler e escrever no reposit\u00f3rio desejado.\r\nGere um token aqui:\r\nhttps://github.com/settings/tokens\r\n\r\nUse esse token com seguran\u00e7a. Para reposit\u00f3rios privados, ele \u00e9 obrigat\u00f3rio.\r\n\r\n---\r\n\r\n## \ud83e\uddea Casos de uso\r\n\r\n- Publicar datasets com versionamento\r\n- Salvar resultados de ETLs diretamente no GitHub\r\n- Criar um \"data catalog\" simples para seu time\r\n- Compartilhar cole\u00e7\u00f5es de dados versionadas em reposit\u00f3rios abertos\r\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "Framework para usar repositorios git como data-lake",
"version": "0.1.1",
"project_urls": {
"Homepage": "https://github.com/carloscorvaum/gitlake"
},
"split_keywords": [
"data-lake",
" github",
" git",
" data",
" data-analytics",
" data-engineer",
" engenharia-de-dados",
" gitlake"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "572b7f334d679801b3126c3157f3b30f57ff3f629d043312ad2f8f19ed4f04e7",
"md5": "4e9a29394b725e377b7589df3b27eaf5",
"sha256": "9d447722e613bbf8e86db69f7057b433cd32fe6b8e3eb46f8e201c9c82931f4f"
},
"downloads": -1,
"filename": "gitlake-0.1.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "4e9a29394b725e377b7589df3b27eaf5",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.9",
"size": 2314,
"upload_time": "2025-08-08T23:19:59",
"upload_time_iso_8601": "2025-08-08T23:19:59.704037Z",
"url": "https://files.pythonhosted.org/packages/57/2b/7f334d679801b3126c3157f3b30f57ff3f629d043312ad2f8f19ed4f04e7/gitlake-0.1.1-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "bd7e11a3065d778ad04eecb03627a8461c6c871461ac5deb0c67dd3673bdf470",
"md5": "5c18ce78c2ef196048a0e12bdebf8f85",
"sha256": "7b374d6bfc9e158ced3553cb239d4ee5e382f30658cbeda2e13570ae895ed6af"
},
"downloads": -1,
"filename": "gitlake-0.1.1.tar.gz",
"has_sig": false,
"md5_digest": "5c18ce78c2ef196048a0e12bdebf8f85",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.9",
"size": 6344,
"upload_time": "2025-08-08T23:20:00",
"upload_time_iso_8601": "2025-08-08T23:20:00.842254Z",
"url": "https://files.pythonhosted.org/packages/bd/7e/11a3065d778ad04eecb03627a8461c6c871461ac5deb0c67dd3673bdf470/gitlake-0.1.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-08-08 23:20:00",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "carloscorvaum",
"github_project": "gitlake",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"requirements": [
{
"name": "python-dotenv",
"specs": [
[
">=",
"1.0.0"
]
]
},
{
"name": "pandas",
"specs": [
[
">=",
"2.0.0"
]
]
},
{
"name": "pyarrow",
"specs": [
[
">=",
"12.0.0"
]
]
},
{
"name": "requests",
"specs": [
[
">=",
"2.30.0"
]
]
}
],
"lcname": "gitlake"
}