{"id":32398997,"url":"https://github.com/home-lang/home","last_synced_at":"2025-10-28T11:01:45.296Z","repository":{"id":320223093,"uuid":"1080945664","full_name":"home-lang/home","owner":"home-lang","description":"There is no language like Home. The speed of Zig. The safety of Rust. The joy of TypeScript.","archived":false,"fork":false,"pushed_at":"2025-10-23T23:00:59.000Z","size":872,"stargazers_count":6,"open_issues_count":0,"forks_count":1,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-10-24T00:29:45.665Z","etag":null,"topics":["apps","cli","cross-platform","desktop","home","home-lang","language","mobile","systems","web","zig"],"latest_commit_sha":null,"homepage":"","language":"Zig","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/home-lang.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":"ROADMAP-WEB-COMPETITIVE.md","authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-10-22T05:02:34.000Z","updated_at":"2025-10-24T00:15:03.000Z","dependencies_parsed_at":"2025-10-22T17:31:11.882Z","dependency_job_id":"16f449d3-4d39-4827-8769-a1e92cf2450a","html_url":"https://github.com/home-lang/home","commit_stats":null,"previous_names":["stacksjs/ion","home-lang/home"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/home-lang/home","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/home-lang%2Fhome","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/home-lang%2Fhome/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/home-lang%2Fhome/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/home-lang%2Fhome/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/home-lang","download_url":"https://codeload.github.com/home-lang/home/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/home-lang%2Fhome/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":280924052,"owners_count":26414366,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-25T02:00:06.499Z","response_time":81,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["apps","cli","cross-platform","desktop","home","home-lang","language","mobile","systems","web","zig"],"created_at":"2025-10-25T08:15:57.291Z","updated_at":"2025-10-25T08:16:02.423Z","avatar_url":"https://github.com/home-lang.png","language":"Zig","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🧬 Home\n\n\u003e **The speed of Zig. The safety of Rust. The joy of TypeScript.**\n\nA systems \u0026 application language that doesn't compromise: blazing compile times, memory safety without ceremony, and APIs that spark joy.\n\n---\n\n## ⚠️ Project Status\n\n**🚧 Active Development**\n\nHome is currently in the foundation phase with a working compiler infrastructure and core packages.\n\n- ✅ Lexer \u0026 Parser implementation\n- ✅ AST \u0026 Type system foundation\n- ✅ Interpreter \u0026 Code generation _(x64)_\n- ✅ Package system with 27 core packages\n- ✅ Modern testing framework with snapshots, mocks \u0026 benchmarks\n- ✅ Standard library _(HTTP, Queue, Database)_\n- ✅ VSCode extension with advanced debugging \u0026 profiling\n\n**Follow Progress**: Watch this repo • [Discussions](../../discussions) • [Roadmap](./ROADMAP.md)\n\n---\n\n## Why Home?\n\nModern systems languages force impossible choices:\n\n- **Zig**: Fast compilation, but manual memory management\n- **Rust**: Memory safe, but slow compilation and steep learning curve\n- **Go**: Fast builds, but garbage collected (unpredictable performance)\n- **C/C++**: Performance, but undefined behavior everywhere\n\n**Home refuses to choose.** We're building a language that delivers:\n\n### ⚡ Speed\n\n- **30-50% faster compile times than Zig** via aggressive IR caching\n- **Sub-100ms incremental rebuilds** for rapid iteration\n- **Runtime performance matching Zig/C** with zero-cost abstractions\n\n### 🔒 Safety\n\n- **Memory safety by default** with inferred ownership\n- **No ceremony** - borrow checker infers most annotations\n- **Fearless concurrency** with compile-time race detection\n\n### 😊 Joy\n\n- **TypeScript-inspired syntax** - familiar and clean\n- **Helpful error messages** with fix suggestions\n- **All tools in one binary** - no Makefile, no npm, no cargo\n- **Batteries included** - HTTP, JSON, CLI tools, database access in stdlib\n\n---\n\n## Quick Example\n\n```home\nimport std/http { Server }\nimport std/database { Connection }\n\nfn main() {\n  let server = Server.bind(\":3000\")\n  let db = Connection.open(\"app.db\")\n\n  server.get(\"/\", fn(req) {\n    return \"Hello from Home!\"\n  })\n\n  server.get(\"/users\", fn(req) -\u003e async Response {\n    let users = await db.query(\"SELECT * FROM users\")\n    return Response.json(users)\n  })\n\n  server.get(\"/user/:id\", fn(req) -\u003e async Response {\n    let user = await fetch_user(db, req.param(\"id\"))\n    return Response.json(user)\n  })\n\n  print(\"Server running on http://localhost:3000\")\n  server.listen()\n}\n\nfn fetch_user(db: \u0026Connection, id: string) -\u003e async Result\u003cUser\u003e {\n  let stmt = db.prepare(\"SELECT * FROM users WHERE id = ?\")\n  stmt.bind(1, id)\n  return stmt.execute().first()\n}\n\nstruct User {\n  id: i64\n  name: string\n  email: string\n}\n```\n\n**Key Features**:\n\n- Clean syntax (TypeScript-like)\n- Async/await without runtime overhead\n- Result-based error handling\n- Native database access (SQLite)\n- Pattern matching\n- Comptime evaluation\n- Zero-cost abstractions\n\n---\n\n## Getting Started\n\n### Installation\n\n```bash\n# Clone repository\ngit clone https://github.com/stacksjs/home.git\ncd home\n\n# Build compiler\nzig build\n\n# Run tests (200+ tests)\nzig build test\n\n# Run examples\nzig build examples\n```\n\n### Your First Home Program\n\n```bash\n# Run the HTTP server example\nzig build example-router\n\n# Run the database example\nzig build example-database\n\n# Run the queue system example\nzig build example-queue\n```\n\n### Prerequisites\n\n- **Zig 0.15+** - For building the compiler\n- **SQLite 3** - For database functionality (optional)\n\n```bash\n# Install Zig\ncurl -L https://ziglang.org/download/0.15.0/zig-macos-aarch64-0.15.0.tar.xz | tar xJ\n\n# On macOS with Homebrew\nbrew install zig sqlite3\n\n# On Ubuntu/Debian\nsudo apt install zig libsqlite3-dev\n\n# On Arch Linux\nsudo pacman -S zig sqlite\n```\n\n---\n\n## Core Architecture\n\nHome is built as a **modular monorepo** with specialized packages:\n\n### Compiler Packages\n\n```\npackages/\n├── lexer/          # Tokenization and scanning\n├── parser/         # AST generation from tokens\n├── ast/            # Abstract Syntax Tree structures\n├── types/          # Type system and inference\n├── diagnostics/    # Error reporting with color output\n├── interpreter/    # Direct code execution\n├── codegen/        # Native x64 code generation\n├── formatter/      # Code formatting\n├── lsp/            # Language Server Protocol\n├── pkg/            # Package manager\n└── testing/        # Modern test framework (snapshots, mocks, benchmarks)\n```\n\n### Standard Library Packages\n\n```\npackages/\n├── stdlib/         # Core standard library\n│   ├── http_router # HTTP server with routing\n│   └── zyte        # Desktop app integration\n├── database/       # SQL database access (SQLite)\n├── queue/          # Background job processing\n├── async/          # Async runtime\n├── build/          # Build system\n├── cache/          # Caching utilities\n└── tools/          # Development tools\n```\n\n### Advanced Features\n\n```\npackages/\n├── comptime/       # Compile-time execution\n├── generics/       # Generic type system\n├── macros/         # Macro system\n├── modules/        # Module system\n├── patterns/       # Pattern matching\n├── safety/         # Memory safety checks\n├── traits/         # Trait system\n└── acthome/         # GitHub Actions integration\n```\n\n### Developer Tooling\n\n```\npackages/\n└── vscode-home/     # VSCode extension with:\n    ├── Language Server Protocol (LSP)\n    ├── Debug Adapter Protocol (DAP)\n    ├── Time-travel debugging\n    ├── Memory profiling with leak detection\n    ├── CPU profiling with flame graphs\n    ├── Multi-threaded debugging (deadlock detection)\n    ├── GC profiling with pressure analysis\n    └── Chrome DevTools format export\n```\n\n---\n\n## Current Capabilities\n\n### ✅ Working Now\n\n#### HTTP Server (Laravel-style)\n\n```home\nimport http_router { Router }\n\nlet router = Router.init()\n\n// Route parameters\nrouter.get(\"/user/:id\", handler)\n\n// Middleware\nrouter.use(logger_middleware)\nrouter.use(auth_middleware)\n\n// Route groups\nlet api = router.group(\"/api\")\napi.get(\"/users\", get_users)\napi.post(\"/users\", create_user)\n\n// JSON responses\nfn handler(req: Request) Response {\n  return Response.json(.{ message = \"Hello!\" })\n}\n```\n\n#### Database Access (Native SQLite)\n\n```home\nimport database { Connection }\n\nlet conn = Connection.open(\":memory:\")\n\n// Execute SQL\nconn.exec(\"CREATE TABLE users (id INTEGER, name TEXT)\")\n\n// Prepared statements\nlet stmt = conn.prepare(\"INSERT INTO users VALUES (?, ?)\")\nstmt.bind_int(1, 42)\nstmt.bind_text(2, \"Alice\")\nstmt.step()\n\n// Query with iteration\nlet result = conn.query(\"SELECT * FROM users\")\nwhile (result.next()) |row| {\n  print(\"User: {s}\", row.get_text(1))\n}\n\n// Query builder\nlet builder = QueryBuilder.init()\n  .from(\"users\")\n  .where(\"age \u003e 18\")\n  .order_by(\"name DESC\")\n  .limit(10)\nlet sql = builder.build()  // Generates SQL string\n```\n\n#### Background Jobs (Queue System)\n\n```home\nimport queue { Queue, QueueConfig }\n\nlet config = QueueConfig.default()\nlet queue = Queue.init(config)\n\n// Dispatch jobs\nqueue.dispatch(\"emails\", \"send_welcome_email\")\nqueue.dispatch_sync(\"logs\", \"write_log\")  // Execute immediately\nqueue.dispatch_after(60, \"cleanup\", \"purge_cache\")  // Delayed\n\n// Process jobs\nlet worker = Worker.init(\u0026queue)\nworker.work(job_handler)\n\n// Batch processing\nlet batch = Batch.init(\"batch_001\")\nbatch.add(job1)\nbatch.add(job2)\nbatch.dispatch(\u0026queue)\n\n// Monitor queue\nprint(\"Pending: {}\", queue.pending_count())\nprint(\"Failed: {}\", queue.failed_count())\nqueue.retry_failed()  // Retry all failed jobs\n```\n\n### 🏗️ In Progress\n\n- **Type inference** - Full Hindley-Milner with bidirectional checking\n- **Ownership analysis** - Move semantics and borrow checking\n- **Async/await** - Zero-cost async runtime\n- **Pattern matching** - Exhaustive match expressions\n- **Comptime execution** - Run code at compile time\n\n---\n\n## Package System\n\nHome uses a **workspace-based monorepo** structure:\n\n### File Extensions\n\nHome supports multiple file extensions for flexibility:\n\n**Source Files:**\n- `.home` - Full extension (e.g., `main.home`)\n- `.hm` - Short extension (e.g., `main.hm`)\n\n**Configuration Files:**\n- `couch.jsonc` - JSON with comments (recommended)\n- `couch.json` - JSON configuration\n- `home.json` - Alternative JSON name\n- `home.toml` - TOML configuration\n- `couch.toml` - Alternative TOML name (symlink to home.toml)\n\n### Package Configuration (`home.toml` or `couch.jsonc`)\n\n```toml\n[package]\nname = \"home-database\"\nversion = \"0.1.0\"\nauthors = [\"Home Contributors\"]\ndescription = \"SQL database access with SQLite driver\"\nlicense = \"MIT\"\n\n[dependencies]\nhome-diagnostics = { path = \"../diagnostics\" }\n\n[scripts]\ntest = \"zig test src/database.zig\"\nbench = \"zig build bench\"\n```\n\n### Workspace Root (`home.toml` or `couch.jsonc`)\n\n```toml\n[package]\nname = \"home\"\nversion = \"0.1.0\"\n\n[workspaces]\npackages = [\"packages/*\"]\n\n[scripts]\nbuild = \"zig build\"\ntest = \"zig build test\"\nformat = \"find src packages -name '*.zig' -exec zig fmt {} +\"\n```\n\n### Installing Home Packages\n\n```bash\n# Install from registry (planned)\nhome add http database queue\n\n# Install from GitHub\nhome add github:user/repo\n\n# Install from Git URL\nhome add https://github.com/user/repo.git\n\n# Install specific version\nhome add database@0.1.0\n```\n\n### Package Storage\n\nHome uses a unique approach to dependency management:\n\n**Dependency Directory: `pantry/`**\n- All dependencies are installed to the `pantry/` directory (not `node_modules`)\n- Keeps your project organized and themed\n\n**Lockfile: `.freezer`**\n- Ensures reproducible builds by freezing exact versions\n- JSON format for easy inspection and version control\n- Stores checksums for integrity verification\n- Example:\n  ```json\n  {\n    \"version\": 1,\n    \"packages\": {\n      \"http@1.0.0\": {\n        \"name\": \"http\",\n        \"version\": \"1.0.0\",\n        \"resolved\": \"https://packages.home-lang.org/http/1.0.0\",\n        \"integrity\": \"sha256-...\",\n        \"source\": {\n          \"type\": \"registry\",\n          \"url\": \"https://packages.home-lang.org\"\n        }\n      }\n    }\n  }\n  ```\n\n---\n\n## Testing\n\nHome has comprehensive test coverage across all packages:\n\n```bash\n# Run all tests (200+ tests)\nzig build test\n\n# Test specific package\nzig test packages/database/tests/database_test.zig\n\n# Run with verbose output\nzig build test --summary all\n\n# Run benchmarks\nzig build bench\n```\n\n### Test Infrastructure\n\nHome features a modern testing framework inspired by Vitest and Jest:\n\n```home\nimport { test, expect, describe, mock, snapshot } from '@home/testing'\n\ndescribe('User API', () =\u003e {\n  test('creates user successfully', async () =\u003e {\n    const user = await createUser({ name: 'Alice' })\n    expect(user.name).toBe('Alice')\n    expect(user).toMatchSnapshot()\n  })\n\n  test('handles validation errors', () =\u003e {\n    const mockDb = mock(database)\n    mockDb.save.mockReject(new Error('Invalid email'))\n\n    expect(() =\u003e createUser({})).toThrow('Invalid email')\n  })\n})\n```\n\n**Features:**\n- Snapshot testing with auto-update\n- Comprehensive matchers (toBe, toEqual, toThrow, etc.)\n- Mock functions with call tracking\n- Async/await support\n- Benchmarking utilities\n- Parallel test execution\n- Watch mode for development\n\n**Test Statistics:**\n- **Core Compiler**: 89 tests (lexer, parser, AST, types)\n- **Standard Library**: 95 tests (HTTP, database, queue)\n- **Code Generation**: 12 tests (x64 assembler)\n- **Interpreter**: 15 tests (value system)\n- **Diagnostics**: 12 tests (error reporting)\n- **Total**: **200+ tests passing**\n\n---\n\n## VSCode Extension \u0026 Developer Tools\n\nHome includes a comprehensive VSCode extension with professional-grade debugging and profiling tools:\n\n### Installation\n\n```bash\n# From the Home repository\ncd packages/vscode-home\nnpm install\nnpm run compile\n\n# Install in VSCode\n# Open Command Palette (Cmd+Shift+P)\n# Run: Extensions: Install from VSIX\n```\n\n### Features\n\n#### 🔍 **Time-Travel Debugging**\nStep backward and forward through execution history:\n- Record full program state at each step\n- Compare snapshots to see what changed\n- Navigate execution timeline\n- Export/import debug sessions\n\n```typescript\n// Automatically records snapshots during debugging\n// Use debugger controls to step back/forward\n// View variable changes between any two points\n```\n\n#### 💾 **Memory Profiling**\nTrack allocations and detect leaks:\n- Real-time allocation tracking\n- Memory leak detection with heuristics\n- Heap snapshot comparison\n- Fragmentation analysis\n- HTML reports with visualizations\n\n#### ⚡ **CPU Profiling**\nSample-based performance profiling:\n- Function call time tracking\n- Interactive flame graphs\n- Chrome DevTools format export\n- Self-time vs total-time analysis\n\n#### 🧵 **Multi-threaded Debugging**\nDebug concurrent programs safely:\n- Thread state tracking\n- Automatic deadlock detection\n- Race condition detection\n- Synchronization event timeline\n- Resource contention statistics\n\n#### 🗑️ **Garbage Collection Profiling**\nAnalyze GC performance:\n- GC event tracking (minor/major/incremental)\n- Object lifetime analysis\n- Generation statistics\n- GC pressure detection\n- Performance recommendations\n\n### Commands\n\nAvailable in VSCode Command Palette:\n\n```\nHome: Start Debugging\nHome: Start CPU Profiler\nHome: Stop CPU Profiler\nHome: Generate Flame Graph\nHome: Export Chrome DevTools Profile\nHome: Start Memory Profiler\nHome: Stop Memory Profiler\nIon: Take Memory Snapshot\nHome: Generate Memory Report\nHome: Start GC Profiler\nHome: Stop GC Profiler\nIon: Analyze GC Pressure\nIon: Time-Travel: Step Back\nIon: Time-Travel: Step Forward\nIon: Multi-thread: Show Deadlocks\nIon: Multi-thread: Show Race Conditions\n```\n\n### Keybindings\n\n- **F5**: Start debugging\n- **Shift+F5**: Stop debugging\n- **F10**: Step over\n- **F11**: Step into\n- **Shift+F11**: Step out\n- **Cmd+Shift+B**: Time-travel step back\n- **Cmd+Shift+F**: Time-travel step forward\n\n---\n\n## Examples\n\n### HTTP Server Example\n\n```bash\nzig build example-router\n```\n\nCreates an HTTP server with:\n- Route parameters (`/user/:id`)\n- Middleware (logging, auth)\n- Route groups (`/api/v1/*`)\n- JSON responses\n- Query parameters\n\n### Database Example\n\n```bash\nzig build example-database\n```\n\nDemonstrates:\n- Table creation and migrations\n- CRUD operations\n- Prepared statements\n- JOIN queries\n- Aggregate functions\n- Query builder\n- Transaction patterns\n\n### Queue System Example\n\n```bash\nzig build example-queue\n```\n\nShows:\n- Job dispatching\n- Delayed jobs\n- Synchronous execution\n- Batch processing\n- Job retry logic\n- Failed job handling\n- Worker processes\n\n### Full-Stack Example\n\n```bash\nzig build example-fullstack\n```\n\nCombines HTTP + Database + Queue for a complete application.\n\n---\n\n## Language Features (Planned)\n\n### Memory Management\n```home\n// Ownership (implicit, no ceremony)\nlet data = read_file(\"config.home\")  // data owns the string\n\n// Automatic borrowing\nfn process(data: string) {  // compiler infers \u0026string\n  print(data.len())\n}\n\nprocess(data)  // auto-borrow\nprint(data)    // still valid!\n\n// Explicit ownership transfer\nfn consume(data: string) {  // takes ownership\n  // data is moved here\n}\n\nconsume(data)\n// print(data)  // Error: value moved\n```\n\n### Error Handling\n```home\nfn read_config() -\u003e Result\u003cConfig\u003e {\n  let file = fs.read_file(\"config.home\")?  // ? propagates errors\n  let config = json.parse(file)?\n  return Ok(config)\n}\n\nmatch read_config() {\n  Ok(config) =\u003e app.start(config),\n  Err(e) =\u003e log.error(\"Failed: {e}\")\n}\n\n// Or unwrap with default\nlet config = read_config().unwrap_or(Config.default())\n```\n\n### Async/Await\n```home\nfn fetch_users() -\u003e async []User {\n  let tasks = [\n    http.get(\"/users/1\"),\n    http.get(\"/users/2\"),\n    http.get(\"/users/3\"),\n  ]\n  return await Promise.all(tasks)\n}\n\n// Concurrent database queries\nfn get_dashboard_data() -\u003e async Dashboard {\n  let [users, posts, stats] = await Promise.all([\n    db.query(\"SELECT * FROM users\"),\n    db.query(\"SELECT * FROM posts\"),\n    db.query(\"SELECT COUNT(*) FROM analytics\"),\n  ])\n\n  return Dashboard { users, posts, stats }\n}\n```\n\n### Comptime Magic\n```home\n// Run at compile time\ncomptime fn generate_routes() -\u003e []Route {\n  return fs.glob(\"routes/**/*.home\")\n    .map(|path| Route.from_path(path))\n}\n\nconst ROUTES = generate_routes()  // executed during compilation\n\n// Compile-time SQL validation\ncomptime fn validate_query(sql: string) {\n  let parsed = sql_parser.parse(sql)\n  if (!parsed.is_valid()) {\n    @compile_error(\"Invalid SQL: \" ++ sql)\n  }\n}\n\n// Use at compile time\ncomptime validate_query(\"SELECT * FROM users WHERE id = ?\")\n```\n\n### Pattern Matching\n```home\nmatch value {\n  Ok(x) if x \u003e 0 =\u003e print(\"Positive: {x}\"),\n  Ok(0) =\u003e print(\"Zero\"),\n  Ok(x) =\u003e print(\"Negative: {x}\"),\n  Err(e) =\u003e print(\"Error: {e}\")\n}\n\n// Destructuring\nmatch point {\n  Point { x: 0, y: 0 } =\u003e print(\"Origin\"),\n  Point { x, y: 0 } =\u003e print(\"On x-axis at {x}\"),\n  Point { x: 0, y } =\u003e print(\"On y-axis at {y}\"),\n  Point { x, y } =\u003e print(\"Point ({x}, {y})\")\n}\n\n// Enum matching\nmatch response {\n  HttpResponse.Ok(body) =\u003e send(body),\n  HttpResponse.NotFound =\u003e send_404(),\n  HttpResponse.Error(code, msg) =\u003e log_error(code, msg),\n}\n```\n\n### Generics\n```home\nfn map\u003cT, U\u003e(items: []T, f: fn(T) -\u003e U) -\u003e []U {\n  let result = []U.init(items.len)\n  for (item, i in items) {\n    result[i] = f(item)\n  }\n  return result\n}\n\nstruct Result\u003cT, E\u003e {\n  value: union {\n    Ok(T),\n    Err(E)\n  }\n\n  fn unwrap(self) -\u003e T {\n    match self.value {\n      Ok(v) =\u003e return v,\n      Err(e) =\u003e panic(\"Called unwrap on Err: {e}\")\n    }\n  }\n\n  fn unwrap_or(self, default: T) -\u003e T {\n    match self.value {\n      Ok(v) =\u003e return v,\n      Err(_) =\u003e return default\n    }\n  }\n}\n```\n\n## Performance Goals\n\n### Compile Time (vs Zig)\n| Benchmark | Ion Target | Zig Baseline |\n|-----------|------------|-------------|\n| Hello World | \u003c50ms | ~70ms |\n| 1000 LOC | \u003c500ms | ~700ms |\n| 10K LOC | \u003c3s | ~5s |\n| Incremental (1 file) | \u003c50ms | ~150ms |\n\n### Runtime Performance (vs Zig/C)\n| Benchmark | Ion Target | Zig/C |\n|-----------|------------|-------|\n| Fibonacci | ±5% | baseline |\n| HTTP throughput | ±5% | baseline |\n| Memory ops | ±5% | baseline |\n| Database queries | ±5% | baseline |\n\n*Benchmarks will be validated continuously starting Month 4*\n\n---\n\n## Community\n\n### Get Involved\n\n- **Discussions**: [GitHub Discussions](../../discussions) - Ideas, questions, feedback\n- **Issues**: [GitHub Issues](../../issues) - Bug reports and feature requests\n- **Contributing**: [`CONTRIBUTING.md`](./CONTRIBUTING.md) - How to contribute\n- **Discord**: [Coming soon] - Real-time chat\n\n### Contributors Welcome\n\nWe're looking for:\n- **Compiler engineers** - Core implementation\n- **Systems programmers** - stdlib development\n- **DX enthusiasts** - Tooling and LSP\n- **Technical writers** - Documentation\n- **Early adopters** - Feedback and testing\n- **Profiling experts** - Advanced debugging tools\n\n[See open issues →](../../issues)\n\n---\n\n## FAQ\n\n**Q: Is Home production-ready?**\nA: Not yet. Home has a working compiler infrastructure and 200+ passing tests, but the full language specification is still being implemented. Expect alpha release by Month 6, 1.0 by Month 24.\n\n**Q: Can I use Home now?**\nA: Yes, for experimentation! You can build the compiler, run the examples, and explore the standard library. Not recommended for production use yet.\n\n**Q: How can Home be faster than Zig?**\nA: Aggressive IR caching at function level + parallel compilation + simpler type system. Will be validated via continuous benchmarking starting Month 4.\n\n**Q: Why another systems language?**\nA: Because none of Zig, Rust, Go, or C give us all three: speed + safety + joy. Home does.\n\n**Q: What about garbage collection?**\nA: No GC. Manual memory management with ownership/borrowing for safety.\n\n**Q: What platforms are supported?**\nA: **Full support** for Windows, macOS, and Linux on both x86_64 and ARM64. Native async I/O uses epoll (Linux), kqueue (macOS), and IOCP (Windows). See [CROSS_PLATFORM_SUPPORT.md](./CROSS_PLATFORM_SUPPORT.md) for details.\n\n**Q: How is this funded?**\nA: Open source, community-driven. Considering sponsorships/grants for sustainability.\n\n**Q: Why Zig for bootstrapping?**\nA: To learn from Zig's strengths/weaknesses while building a fast foundation. Self-host in Home at Phase 6.\n\n**Q: What about C interop?**\nA: Full C interop planned. You can already see this in the database package (SQLite bindings).\n\n**Q: Does Home have a package registry?**\nA: Not yet. Packages currently installed from Git. Official registry planned for Phase 1.\n\n**Q: What makes Home's debugging tools special?**\nA: Home includes time-travel debugging (step backward through execution), automatic deadlock detection for multi-threaded programs, memory leak detection, CPU flame graphs, and GC pressure analysis - all integrated into VSCode. Most languages don't have this level of tooling out of the box.\n\n**Q: Can I use Home's testing framework now?**\nA: Yes! The testing framework is fully functional with snapshot testing, mocks, async support, and benchmarking utilities. It's inspired by Vitest and Jest but designed for systems programming.\n\n---\n\n## Comparison\n\n|  | Ion | Zig | Rust | Go | C++ |\n|---|-----|-----|------|----|----|\n| Compile speed | ⚡⚡⚡ | ⚡⚡ | ⚡ | ⚡⚡⚡ | ⚡ |\n| Memory safety | ✅ | ⚠️ | ✅ | ❌ GC | ❌ |\n| Learning curve | 😊 | 🤔 | 😰 | 😊 | 😱 |\n| Async/await | ✅* | ❌ | ⚠️ | ✅ | ⚠️ |\n| Comptime | ✅* | ✅ | ⚠️ | ❌ | ⚠️ |\n| Package manager | ✅ | ⚠️ | ✅ | ✅ | ❌ |\n| IDE support | ✅ | ⚡ | ✅ | ✅ | ✅ |\n| Modern testing | ✅ | ⚠️ | ✅ | ✅ | ⚠️ |\n| Time-travel debug | ✅ | ❌ | ❌ | ❌ | ❌ |\n| Database access | ✅ | ⚠️ | ✅ | ✅ | ⚠️ |\n| HTTP server | ✅ | ⚠️ | ✅ | ✅ | ⚠️ |\n\n*Planned, not yet implemented\n\n---\n\n## Project Structure\n\n```\nhome/\n├── src/\n│   ├── main.zig          # CLI entry point\n│   └── ion.zig           # Compiler library\n├── packages/             # Core packages (27 total)\n│   ├── lexer/           # Tokenization\n│   ├── parser/          # AST generation\n│   ├── ast/             # Syntax tree\n│   ├── types/           # Type system\n│   ├── interpreter/     # Code execution\n│   ├── codegen/         # x64 generation\n│   ├── diagnostics/     # Error reporting\n│   ├── formatter/       # Code formatting\n│   ├── testing/         # Modern test framework\n│   ├── stdlib/          # Standard library\n│   ├── database/        # SQLite access\n│   ├── queue/           # Job processing\n│   └── vscode-home/      # VSCode extension with advanced tooling\n├── examples/            # Usage examples\n│   ├── http_router_example.zig\n│   ├── database_example.zig\n│   ├── queue_example.zig\n│   └── full_stack_zyte.zig\n├── bench/               # Benchmarks\n├── docs/                # Documentation\n├── build.zig            # Build configuration\n└── ion.toml             # Workspace configuration\n```\n\n---\n\n## License\n\n**MIT License**\n\nFree for individuals, academia, and private enterprise.\n\n[Full license →](./LICENSE)\n\n---\n\n## Acknowledgments\n\nIon stands on the shoulders of giants:\n\n- **Zig**: Comptime philosophy, honest design, and build system inspiration\n- **Rust**: Memory safety model, ownership semantics, and error handling\n- **TypeScript**: Developer experience, syntax ergonomics, and tooling standards\n- **Bun**: Speed-first mentality, all-in-one tooling, and package management\n- **Laravel**: Expressive APIs, queue system design, and developer joy\n- **SQLite**: Embedded database excellence and reliability\n\nThank you to the language design community for paving the way.\n\n---\n\n## Citation\n\nIf you reference Home in academic work:\n\n```bibtex\n@software{home2025,\n  title = {Home: A Systems Language for Speed, Safety, and Joy},\n  author = {Stacks.js Team and Contributors},\n  year = {2025},\n  url = {https://github.com/stacksjs/home},\n}\n```\n\n---\n\n**Built with ❤️ by the Stacks.js team and contributors**\n\n[GitHub](https://github.com/stacksjs/ion) • [Discussions](../../discussions) • [Issues](../../issues)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhome-lang%2Fhome","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhome-lang%2Fhome","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhome-lang%2Fhome/lists"}