Metadata-Version: 2.4
Name: dromedary
Version: 0.1.3
Summary: Transport abstraction layer split out from Breezy
Maintainer-email: Breezy Developers <team@breezy-vcs.org>
License-Expression: GPL-2.0-or-later
Project-URL: Homepage, https://www.breezy-vcs.org/
Project-URL: Repository, https://github.com/breezy-team/dromedary
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: Operating System :: OS Independent
Classifier: Operating System :: POSIX
Classifier: Programming Language :: Python
Classifier: Programming Language :: Rust
Classifier: Topic :: Software Development :: Version Control
Classifier: Topic :: System :: Filesystems
Requires-Python: <3.15,>=3.10
Description-Content-Type: text/markdown
License-File: COPYING.txt
Requires-Dist: catalogus
Provides-Extra: paramiko
Requires-Dist: paramiko>=1.6.2; extra == "paramiko"
Provides-Extra: dev
Requires-Dist: ruff==0.15.12; extra == "dev"
Requires-Dist: types-paramiko; extra == "dev"
Provides-Extra: testing
Requires-Dist: testtools; extra == "testing"
Requires-Dist: testscenarios; extra == "testing"
Requires-Dist: python-subunit; extra == "testing"
Dynamic: license-file

# Dromedary

Dromedary is a transport layer abstraction for version control systems, extracted from the [Breezy](https://www.breezy-vcs.org/) version control system.

## Overview

Dromedary provides a uniform interface for accessing files and directories across different protocols and storage backends. It supports:

- Local filesystem access
- HTTP/HTTPS for web-based repositories
- SFTP for secure remote access
- Memory-based transport for testing
- Various transport decorators for additional functionality

## Features

- Protocol abstraction layer
- Support for multiple transport protocols (file, http, https, sftp, memory)
- Transport decorators for logging, readonly access, etc.
- Comprehensive test coverage
- Well-documented API

## Installation

```bash
pip install dromedary
```

## Usage

```python
from dromedary import get_transport

# Get a transport for a local directory
transport = get_transport('/path/to/directory')

# Get a transport for an HTTP URL
transport = get_transport('http://example.com/repo')

# Use the transport
files = transport.list_dir('.')
content = transport.get('filename').read()
```

## Requirements

- Python 3.8+

Optional dependencies:
- paramiko (for SFTP support)
- pygobject (for GIO transport support)

## License

GNU General Public License v2 or later (GPLv2+)
