Running the Web Server
Each language implementation includes a web server that exposes the assembler functionality.
⚠️ Important: All projects have idle tracking implemented with auto shutdown after 10 seconds
of inactivity (for deployment on fly.io). Use --skipIdleTracking option when running locally.
C#
cd csharp\AssemblerWeb
dotnet run . --skipIdleTracking
Access at: http://localhost:5000
C# (JavaScript Assembler)
cd csharp\AssemblerWebJs
dotnet run . --skipIdleTracking
Rust
cd rust\AssemblerWeb
cargo run . --skipIdleTracking
Access at: http://localhost:8080
Go
cd go/AssemblerWeb
go run . --skipIdleTracking
Access at: http://localhost:8080
Node.js
cd node/AssemblerWeb
npm install
npm start -- --skipIdleTracking
Access at: http://localhost:3000
PHP
cd php/AssemblerWeb
composer install
php -S localhost:8001 index.php
Access at: http://localhost:8001
Project Structure
The repository is organized by language, with each language having a consistent set of subprojects:
/
├── <language>/
│ ├── Assembler/ # Core static site generation logic
│ └── AssemblerWeb/ # Web server exposing the assembler
│ └── AssemblerWebJs/ # Web server for JavaScript assembler (C# only)
...
Key Directories
- Assembler/ - Core library implementing the assembly logic
- AssemblerWeb/ - Web server with API endpoints and demo UI
- wwwroot/AppSites/ - Template and data files for testing
- Analysis/ - Debug output for template structure analysis