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.0.tar.gz (127.6 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.0-py3-none-any.whl (61.1 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: dagshell-0.2.0.tar.gz
  • Upload date:
  • Size: 127.6 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.0.tar.gz
Algorithm Hash digest
SHA256 bdd74fe2bf18aec550e2a5dcb88067761ec2e89587fa664f237ac463296e9bf1
MD5 b8edd64e849b4c778067ccccbbce3264
BLAKE2b-256 e7ebd44fb24902511e29e7e792f8f86c708ab7a6a188d0071412828fcd3eb42f

See more details on using hashes here.

File details

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

File metadata

  • Download URL: dagshell-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 61.1 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.0-py3-none-any.whl
Algorithm Hash digest
SHA256 c24d0fc90902ec76b2278ebac00080e5c18ee6164c3052cd370c67cad96c319c
MD5 0e6b6297eff545aa4ceebf9809aaaebb
BLAKE2b-256 9f03baf5dae2f787274845650b5c0b313e1ac25f5f071337130f224b1666c002

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