Skip to main content

A virtual POSIX filesystem with content-addressable DAG structure

Project description

DagShell

A virtual POSIX-compliant filesystem implementation with content-addressable DAG structure.

Quick Start

# Install the package
pip install -e .

# Start the terminal emulator
python -m dagshell.terminal

# Or use the Python API directly
python
>>> from dagshell.dagshell_fluent import DagShell
>>> shell = DagShell()
>>> shell.mkdir("/project").cd("/project")
>>> shell.echo("Hello, DagShell!").out("README.md")
>>> shell.save("my_project.json")

Features

  • Content-Addressable Filesystem: SHA256-based deduplication
  • Virtual POSIX Environment: Complete filesystem in JSON
  • Multiple Interfaces: Python API, Scheme DSL, Terminal emulator
  • Persistence: Save/load filesystem state as JSON
  • Virtual Devices: /dev/null, /dev/random, /dev/zero
  • Directory Navigation: cd, pushd, popd, dirs
  • Import/Export: Transfer files between real and virtual filesystems
  • Command History: Track and recall previous commands
  • Comprehensive Testing: 583 tests with 77% code coverage

Development

# Run tests
python -m pytest tests/ -v

# Run with coverage
python -m pytest tests/ --cov=dagshell --cov-report=term

License

MIT

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

dagshell-0.2.1.tar.gz (138.5 kB view details)

Uploaded Source

Built Distribution

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

dagshell-0.2.1-py3-none-any.whl (58.9 kB view details)

Uploaded Python 3

File details

Details for the file dagshell-0.2.1.tar.gz.

File metadata

  • Download URL: dagshell-0.2.1.tar.gz
  • Upload date:
  • Size: 138.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.3

File hashes

Hashes for dagshell-0.2.1.tar.gz
Algorithm Hash digest
SHA256 819a2c1db10109bf84028f1245dd72a781695ea24a2ec5a2c901817b96bc612d
MD5 46361b2e55884241b89481619ff86029
BLAKE2b-256 b3f16b4e9460ed83a73f3c212d94b39f066367fce34c7f2338c8660d9b25ad25

See more details on using hashes here.

File details

Details for the file dagshell-0.2.1-py3-none-any.whl.

File metadata

  • Download URL: dagshell-0.2.1-py3-none-any.whl
  • Upload date:
  • Size: 58.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.3

File hashes

Hashes for dagshell-0.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 86f6b1dcd6b7fd78674b64bed6861b682e5369ee0fa8a2d0c14eb5af42420f61
MD5 1072b97493bfcb0a204ae9cd4f902b3a
BLAKE2b-256 ef9b949c595698788769b02acb3b02896589c4559f3010ef0ce1f19b9c23c585

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