Skip to content
forked from y-gupta/yoifs

Your Own Indestructable File System

Notifications You must be signed in to change notification settings

shubhamattri/yoifs

Β 
Β 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

16 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ—‚οΈ YOIFS - Your Own Indestructible File System

A resilient, enterprise-grade file system with built-in corruption recovery, redundancy, and advanced security features.

πŸš€ Quick Start

# Install dependencies
npm install

# Run comprehensive tests across all versions
npm run simple-test

# Run specific version tests
npm run version1    # Basic file system
npm run version2    # Enhanced with compression & deduplication
npm run version3    # Enterprise with security & monitoring

# Run quality and performance tests
npm run quality-test
npm run test:enterprise

πŸ“ Project Structure

yoifs-master/
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ v1-basic/                    # Basic filesystem with corruption recovery
β”‚   β”‚   β”œβ”€β”€ index.ts                 # Core utilities (MemoryDisk, Logger, etc.)
β”‚   β”‚   └── version1-basic-solution.ts # FAT-based file system
β”‚   β”œβ”€β”€ v2-enhanced/                 # Enhanced with advanced features
β”‚   β”‚   └── version2-enhanced-solution.ts # Chunking, compression, deduplication
β”‚   └── v3-enterprise/               # Full enterprise stack
β”‚       β”œβ”€β”€ core/                    # File system core operations
β”‚       β”œβ”€β”€ security/                # Authentication, authorization, encryption
β”‚       β”œβ”€β”€ monitoring/              # Performance and health monitoring
β”‚       β”œβ”€β”€ quota/                   # Resource management and limits
β”‚       β”œβ”€β”€ performance/             # Caching and optimization
β”‚       β”œβ”€β”€ backup/                  # Backup and recovery services
β”‚       β”œβ”€β”€ utils/                   # Utility services
β”‚       └── types/                   # TypeScript type definitions
β”œβ”€β”€ tests/                           # Comprehensive test suites
β”‚   β”œβ”€β”€ simple-version-test.ts       # Cross-version comparison tests
β”‚   β”œβ”€β”€ quality-test.ts              # Quality and stress tests
β”‚   β”œβ”€β”€ unified-test-suite.ts        # Unified testing framework
β”‚   └── EnterpriseFileSystem.test.ts # Enterprise-specific tests
β”œβ”€β”€ docs/                            # Documentation and guides
└── package.json

πŸ—οΈ Architecture Versions

Version Features Use Case Corruption Resilience
V1 (Basic) FAT table, replica writes, checksums Development, Testing 100%
V2 (Enhanced) 4KB chunks, gzip compression, deduplication, metadata resilience Production Ready 100%
V3 (Enterprise) MFA, RBAC, AES-256 encryption, quotas, monitoring Enterprise Deployment 100%

πŸ“‹ Implemented Features

πŸ›‘οΈ Corruption Recovery (All Versions)

  • Automatic Detection: SHA-256 checksums for data integrity
  • Replica Recovery: Primary/replica fallback mechanism
  • Metadata Resilience: Multiple metadata backup sections
  • Partial Recovery: Graceful degradation with configurable fill patterns
  • Self-Healing: Automatic corruption detection and repair

πŸ”„ V2 Enhanced Features

  • Chunking: 4KB fixed-size chunks for better error isolation
  • Compression: Gzip compression with configurable thresholds
  • Deduplication: SHA-256 based chunk deduplication
  • Metadata Redundancy: 3-section metadata with automatic failover
  • Free Space Management: Intelligent space allocation and tracking
  • Append Support: Efficient file appending without full rewrite

πŸ” V3 Enterprise Features

  • Multi-Factor Authentication: TOTP-based MFA support
  • Role-Based Access Control: ADMIN, HR_MANAGER, EMPLOYEE roles
  • AES-256-GCM Encryption: Data at rest encryption with key rotation
  • Quota Management: User and department-level storage limits
  • Performance Monitoring: Real-time metrics and health reporting
  • Audit Logging: Comprehensive security event tracking
  • Session Management: Secure session handling with cleanup

🎯 Getting Started

1. Basic Usage (V1)

import { FileSystem } from './src/v1-basic/version1-basic-solution';
import { MemoryDisk } from './src/v1-basic/index';

const disk = new MemoryDisk(1024 * 1024); // 1MB disk
const fs = new FileSystem(disk);

// Write file with automatic replica
await fs.writeFile('test.txt', Buffer.from('Hello, YOIFS!'));

// Read file with corruption detection
const result = await fs.readFile('test.txt');
if (result.success) {
  console.log('File content:', result.data.toString());
}

2. Enhanced Usage (V2)

import { EnhancedFileSystem } from './src/v2-enhanced/version2-enhanced-solution';

const fs = new EnhancedFileSystem(disk);

// Write with compression and deduplication
await fs.writeFile('large.txt', largeBuffer);

// Read with partial corruption recovery
const result = await fs.readFile('large.txt', {
  allowPartialRecovery: true,
  fillCorruptedChunks: 'zeros',
  minimumRecoveryRate: 80
});

3. Enterprise Usage (V3)

import { createEnterpriseFileSystem } from './src/v3-enterprise/index';

const fs = createEnterpriseFileSystem(disk);

// Authenticate user
const auth = await fs.authenticateUser({
  username: 'admin',
  password: 'admin123'
});

// Write encrypted file
await fs.writeFile(auth.sessionToken, 'secure.txt', data, 'admin');

// Read with quota checking
const result = await fs.readFile(auth.sessionToken, 'secure.txt');

πŸ§ͺ Testing

Comprehensive Test Suite

# Test all versions with corruption simulation
npm run simple-test

# Quality and stress testing
npm run quality-test

# Enterprise-specific tests
npm run test:enterprise

# Jest-based testing
npm test
npm run test:coverage

Test Results (Consistent)

  • V1: 100% corruption resilience βœ…
  • V2: 100% corruption resilience βœ…
  • V3: 100% corruption resilience βœ…

πŸ“š Documentation

πŸ”§ Development

Available Scripts

npm run dev              # Development mode (V1)
npm run version1         # Run V1 tests
npm run version2         # Run V2 tests  
npm run version3         # Run V3 tests
npm run simple-test      # Cross-version comparison
npm run quality-test     # Quality assurance
npm run test:enterprise  # Enterprise workflows
npm run lint             # TypeScript linting

Key Dependencies

  • TypeScript: Strong typing and modern JavaScript features
  • Node.js Crypto: SHA-256 checksums and AES-256 encryption
  • Zlib: Gzip compression for storage optimization
  • Jest: Comprehensive testing framework

🎯 Performance Highlights

  • Corruption Resilience: 100% across all versions
  • Compression Ratio: Up to 70% storage savings in V2
  • Deduplication: Eliminates duplicate chunks automatically
  • Encryption Overhead: <5% performance impact in V3
  • Authentication: Sub-second login with MFA support

πŸš€ Production Ready

All three versions are production-ready with:

  • βœ… Comprehensive Testing: 100% corruption resilience verified
  • βœ… Error Handling: Graceful degradation and recovery
  • βœ… Security: Enterprise-grade authentication and encryption
  • βœ… Monitoring: Real-time performance and health metrics
  • βœ… Documentation: Complete API and deployment guides

Built for resilience. Designed for enterprise. Ready for production. πŸ›‘οΈ

About

Your Own Indestructable File System

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript 99.8%
  • JavaScript 0.2%