๐ Chinese | Development doc | Config
๐ Next-Generation Privacy-Preserving File System - Featuring Black-White Tree Structure and RCA Encryption for Anti-Tracking Storage and Non-Recoverable Access
- Anti-Tracking Storage: Black-White Tree layered structure with random data distribution that prevents access pattern tracing
- Non-Recoverable Access: Token mechanism + multi-layer encryption ensures deleted data is completely unrecoverable
- Secure Memory: Memory data remains encrypted at all times, preventing memory dump
- Hybrid Storage: intelligent optimal strategy selection of memory and bwtfs
- COW Mechanism: Copy-on-Write protects data integrity while supporting concurrent access
- FUSE Mount: Cross-platform filesystem mounting (Windows/macOS/Linux)
- Command Line Tools: Interactive and batch operation modes
- HTTP Service: RESTful API + Modern Web management interface
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ User Interface Layer โ
โ โโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโ โ
โ โ FUSE Mount โ โ CMD Tools โ โ HTTP Serviceโ โ
โ โโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ Core Engine Layer โ
โ โโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโ โ
โ โ B&W Tree โ โ RCA Crypto โ โ Token Accessโ โ
โ โ Storage โ โ โ โ Control โ โ
โ โโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ Storage Layer โ
โ โโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโ โ
โ โ Bitmap โ โ Wear Level โ โ Transaction โ โ
โ โ Management โ โ Balancing โ โ Mechanism โ โ
โ โโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ Physical Layer โ
โ โโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโ โ
โ โ Memory Pool โ โ File System โ โ
โ โโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
Development Environment:
- C++20 or higher
- CMake 3.10+
- Git
Runtime Dependencies:
- Windows: WinFSP runtime
- macOS: macFUSE 2.9+
- Linux: libfuse3
Web Interface (Optional):
- Node.js 16.0+ (for development)
- pnpm 8.0+ (package manager)
- Modern browser (Chrome 90+, Firefox 88+, Safari 14+)
# Clone the project
git clone https://github.com/zaoweiceng/BwtFS.git
cd BwtFS
# Create build directory
mkdir build && cd build
# Configure project
cmake ..
# Build (Linux/macOS)
make
# Build (Windows)
cmake --build .After compilation, executables are located in build/bin/ directory:
bwtfs_cmd- Command line toolsbwtfs_mount- FUSE mount toolbwtfs_net- HTTP service
# Navigate to web directory
cd net/web
# Install dependencies with pnpm
pnpm install
# Start development server
pnpm start
# Production build
pnpm build
# Access web interface
# http://localhost:3000๐ Complete startup process:
- Start the backend service:
./build/bwtfs_net(port 9999) - Start the front-end interface:
cd net/web && pnpm start(port 3000) - visit: http://localhost:3000
# Create filesystem (256MB)
./bwtfs_cmd create ./myfs.bwt 256
# Write file
./bwtfs_cmd write ./myfs.bwt ./document.pdf
# Output: โ File written successfully, Token: abc123def456...
# Read file
./bwtfs_cmd retrieve ./myfs.bwt abc123def456... ./output.pdf
# Delete file
./bwtfs_cmd delete ./myfs.bwt abc123def456...
# View system information
./bwtfs_cmd info ./myfs.bwt# Mount to X: drive (Windows)
./bwtfs_mount.exe X: ./myfs.bwt ./fs.json
# Mount to mount point (Linux/macOS)
./bwtfs_mount ./mountpoint ./myfs.bwt ./fs.json
# Now use it like a regular filesystem
echo "Hello BwtFS" > X:\test.txt
copy X:\test.txt .\
# Unmount (Linux/macOS)
umount ./mountpoint
# Windows just exit the program# Start HTTP server (from build directory)
./bwtfs_net
# Access Modern Web interface
Open browser: http://localhost:3000
# Access API directly
API Base URL: http://127.0.0.1:9999
# API download file
curl -O http://127.0.0.1:9999/abc123def456...Web Interface Features:
- ๐จ Modern-style UI - Modern, responsive design
- ๐ File Management - Drag-drop upload, folder operations, search
- ๐ File Preview - Built-in preview for images, PDF, text, markdown
- ๐ Privacy-focused - Token-based access with secure operations
- โก Real-time Updates - Toast notifications and live status
- ๐ฑ Mobile Ready - Responsive design for all devices
| Document | Description |
|---|---|
| README_DEV.md | Complete development documentation with architecture design and API documentation |
| README_CONFIG.md | Detailed configuration file documentation |
| net/README.md | BwtFS ็ฝ็ปๆๅกๅฎๆดๆๆกฃ - ๅ ๅซๅ็ซฏ API ๅๅ็ซฏ้ๆ |
| net/web/README.md | Web ๅ็ซฏ็้ข่ฏฆ็ปๆๆกฃ - React ๆๆฏๆ ๅๅ่ฝ่ฏดๆ |
| fs/README.md | FUSE subproject documentation |
| fs/README_DEV.md | FUSE development documentation |
| net/README_DEV.md | HTTP service development documentation |
BwtFS uses bwtfs.ini configuration file:
[logging]
log_level = INFO
log_path = ./bwtfs.log
log_to_file = false
log_to_console = true
[system]
# BwtFS system file path (optional, default ./bwtfs.bwt)
# path = ./bwtfs.bwt
[server]
# HTTP service configuration
host = 127.0.0.1
port = 9999
max_body_size = 104857600- Private File Backup: Secure backup of personal sensitive data
- Temporary File Processing: Secure handling of temporary sensitive data
- Cross-device Transfer: Encrypted file secure transfer between different devices
Random Cellular Automata based encryption algorithm:
- Forward Encryption: Multi-level encryption during data writing
- Backward Decryption: Step-by-step decryption during data reading
- Random Seeds: Each node uses independent random seeds
Innovative layered storage structure:
- White Nodes: Store actual file data
- Black Nodes: Store index information of white nodes
- Random Distribution: Nodes are randomly distributed in storage space
- Unique Identifier: Each file generates a unique access token
- Information Encapsulation: Token contains position, size, encryption parameters and other information
- Access Control: Files cannot be accessed without correct token
- Temp Files: Stored in memory for fast access
- User Files: Stored in BwtFS with encryption protection
- Intelligent Selection: Automatically selects optimal storage strategy based on file characteristics
This project is licensed under the MIT License - see the LICENSE file for details.
Thanks to the following open source projects:
Core System:
- WinFSP - Windows FUSE implementation
- macFUSE - macOS FUSE implementation
- libfuse - Linux FUSE implementation
- cpp-httplib - Http framework
- nlohmann/json - Json library
Web Frontend:
- React - Modern UI framework
- Element Plus - Vue 3 UI components
- TypeScript - Type-safe JavaScript
- Axios - HTTP client library
- Lucide React - Icon library
- React-markdown - Markdown renderer
โญ If this project helps you, please give us a star!