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
Release history Release notifications | RSS feed
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)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
dagshell-0.2.0-py3-none-any.whl
(61.1 kB
view details)
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bdd74fe2bf18aec550e2a5dcb88067761ec2e89587fa664f237ac463296e9bf1
|
|
| MD5 |
b8edd64e849b4c778067ccccbbce3264
|
|
| BLAKE2b-256 |
e7ebd44fb24902511e29e7e792f8f86c708ab7a6a188d0071412828fcd3eb42f
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c24d0fc90902ec76b2278ebac00080e5c18ee6164c3052cd370c67cad96c319c
|
|
| MD5 |
0e6b6297eff545aa4ceebf9809aaaebb
|
|
| BLAKE2b-256 |
9f03baf5dae2f787274845650b5c0b313e1ac25f5f071337130f224b1666c002
|