{"id":26742368,"url":"https://github.com/omerba31/git_filesystem","last_synced_at":"2026-04-20T05:32:47.650Z","repository":{"id":284788242,"uuid":"956066923","full_name":"Omerba31/git_fileSystem","owner":"Omerba31","description":"A hybrid Git-like file system project using C++ for backend logic and Python for the command-line interface — supports operations like staging, commits, object handling, and more.","archived":false,"fork":false,"pushed_at":"2025-03-27T16:48:54.000Z","size":0,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-27T17:41:05.323Z","etag":null,"topics":["cli","cpp","docker","git","makefile","python"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Omerba31.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-03-27T16:37:49.000Z","updated_at":"2025-03-27T16:48:57.000Z","dependencies_parsed_at":"2025-03-27T17:41:08.602Z","dependency_job_id":"94284d8c-3c60-4eb6-866e-718dd5b0eb0e","html_url":"https://github.com/Omerba31/git_fileSystem","commit_stats":null,"previous_names":["omerba31/git_filesystem"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Omerba31%2Fgit_fileSystem","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Omerba31%2Fgit_fileSystem/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Omerba31%2Fgit_fileSystem/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Omerba31%2Fgit_fileSystem/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Omerba31","download_url":"https://codeload.github.com/Omerba31/git_fileSystem/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245978283,"owners_count":20703678,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cli","cpp","docker","git","makefile","python"],"created_at":"2025-03-28T06:17:39.892Z","updated_at":"2026-04-20T05:32:47.617Z","avatar_url":"https://github.com/Omerba31.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Git FileSystem\n\nA hybrid Git-like file system project that combines the performance of C++ with the flexibility of a Python command-line interface. It mimics essential Git operations such as creating objects, managing trees, and committing changes — all within a custom file system environment.\n\n---\n\n## 🧠 Project Structure\n\n- **C++ Core (`libcaf/src/`)**: Implements the core logic for managing blobs, trees, commits, object I/O, and hashing.\n- **Python CLI (`caf/`)**: Provides a user-friendly interface for interacting with the file system via commands.\n- **Binding Layer**: Exposes C++ functionality to Python (via bindings in `bind.cpp` and setup config).\n\n---\n\n## 🚀 Features\n\n- Create and manage Git-like objects (blobs, trees, commits)\n- Navigate a custom file system hierarchy\n- Interact through Python-based CLI\n- Modular, extensible, and performance-focused\n\n---\n\n## 🛠️ Installation\n\n### Prerequisites\n\n- Python 3.8+\n- A C++ compiler (`g++` or `clang`)\n- `pip` and `virtualenv` (optional but recommended)\n\n### Clone the repository\n\n```bash\ngit clone https://github.com/Omerba31/git_fileSystem.git\ncd git_fileSystem\n```\n\n### Build and install the C++ extension\n\n```bash\ncd libcaf\npip install .\n```\n\n\u003e This will compile the C++ source in `libcaf/src/` and make it available to the Python interface.\n\n### Run the CLI\n\n```bash\ncd ../caf\npython -m caf\n```\n\n---\n\n## 🧪 Running Tests\n\n```bash\ncd tests\npytest\n```\n\n---\n\n## 📁 Directory Overview\n\n```\ngit_fileSystem/\n├── caf/             # Python CLI interface\n├── libcaf/          # C++ backend and binding setup\n│   ├── src/         # Core C++ logic (Blob, Tree, Commit, etc.)\n│   └── setup.py     # Build configuration for Python bindings\n├── tests/           # Unit tests\n├── Makefile         # Optional build automation\n└── Dockerfile       # Containerization setup\n```\n\n---\n\n## 🧩 Example Commands\n\nFrom the CLI:\n\n```bash\n\u003e init\nInitialized empty Git-like repository.\n\n\u003e add file.txt\nStaged 'file.txt'\n\n\u003e commit -m \"Initial commit\"\n[commit] Created with message: Initial commit\n\n\u003e ls\n.blob\n.tree\n```\n\n---\n\n## 📄 License\n\nThis project is licensed under the **MIT License**. See `LICENSE` for details.\n\n---\n\n## 🤝 Contributions\n\nFeel free to open issues, suggest features, or submit pull requests!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fomerba31%2Fgit_filesystem","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fomerba31%2Fgit_filesystem","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fomerba31%2Fgit_filesystem/lists"}