Back to battles
legendaryupcoming

In-Memory File System

Build a POSIX-like in-memory file system with directories, permissions, and hard/soft links.

60 min limit0 participants
systemstypescriptos
PRD
# In-Memory File System PRD

## Overview
Build a POSIX-like in-memory file system with inode-based storage, file and directory operations, hard and symbolic links, Unix permission model, file descriptors, and a REPL shell for interactive use with serialization to persist the filesystem.

## Requirements
- Inode-based storage separating file data from metadata
- File operations: create, read, write, append, truncate, and delete
- Directory operations: mkdir, rmdir, readdir, and recursive mkdir -p
- Path resolution supporting absolute paths, relative paths, . (current), and .. (parent)
- Hard links: multiple directory entries pointing to the same inode
- Symbolic links: create, resolve, and detect circular reference cycles
- File metadata: size, timestamps (created, modified, accessed), and permissions (rwxrwxrwx)
- Permission checking for owner, group, and other with enforcement on operations
- File descriptors: open, close, read, and write with tracked offset
- stat command displaying file or directory metadata
- du command calculating directory size recursively
- find command searching by name pattern, file type, or size
- tree command displaying the directory hierarchy visually
- Maximum file size and total file count limits
- Serialization: save and load the entire filesystem to/from a JSON file
- REPL shell interface with cd, ls, cat, echo, mkdir, rm, ln, chmod, and other commands

## Tech Stack
- TypeScript / Node.js
- No external filesystem or VFS libraries — raw inode implementation required
- In-memory storage with optional JSON serialization to disk

## Scoring Criteria
- **Functional (40%)**: File CRUD works, directories nest correctly, paths resolve properly
- **Quality (20%)**: Correct inode semantics, proper permission enforcement, clean REPL experience
- **Fidelity (25%)**: All features including hard/soft links, file descriptors, find, du, and serialization
- **Speed (15%)**: Time bonus

Battle Stats

Time Limit60 min
Participants0
Statusupcoming

Rules

  • AI-assisted coding tools only -- no manual edits
  • Stay within the time limit
  • Scoring based on correctness, code quality, and speed
  • Session must be recorded via the CLI