A Polyglot Declarative Framework for App Creation
Arshu Assembler is a polyglot declarative framework for app creation, inspired by abstractions from Mustache, React, and HTMX. This project is a multi-language implementation of the original Arshu Assembler, recreated using AI-assisted development in multiple languages ultimately to replace/enhance the original.
This repository represents current Phase 2 of a larger project vision (which may/may not be possible) to build a polyglot web framework.
Validated if LLM can be used to generate web related code in multiple languages.
The actual start of the project to use LLM to build a static assembler to assemble HTML in various languages with multiple implementations, complete with 5 initial rules.
Implement abstractions of static data inheritance (parent/global/context) across components as well as assembling components from different JSON for the same markup.
Make the data modifiable and implement dynamic server-side generation of HTML with ability to drill down and generate any leaf or child hierarchy of the component tree.
Truly integrate client side and server side, making assembler components assemblable in client (JS) and/or server (C#/Rust/Go/PHP/Node) depending on requirements.
Provide common abstractions for communicating between components using Ajax/WebSocket/WebRTC/WebTransport.
Provide common abstractions for deployment (Initial Multi Provider/Subsequent Zero Downtime/Clonable), Measurement (Usage/Performance) with integration to Authentication/Authorization/Payment Systems as a sample project to be deployed in Usage-based infrastructure in fly.io/unikraft.cloud/baremetal/virtual machine.
This is a Sustainable Revenue Centric Instead of Cost Centric Open Source (MIT Licensed) project.
No pull requests will be accepted for this repository. If you want to collaborate, fork this repository and share your enhancement details via an issue.
All implementations are AI-generated with focus on architecture, testing, validation, and performance. Implementations may not be optimal but outputs are accurate and validated.
Note: I am only familiar with C#, which I used as the prompt for all other languages. I am not familiar with idioms or conventions in other languages.
Demo of the original Assembler Framework is deployed in:
UI Source available in Arshu Data GitHub
The primary goal is to recreate the existing Arshu Assembler so that I can improve the abstraction for assembly since I have lots of ideas but lack the time to implement them.
The secondary goal is to recreate demo applications Arshu Data, Arshu Hub, and the Loyalty Management Application and other apps which I am developing to be fully recreated in AI so that I can implement features faster using AI.
Find abstractions which improve reusability in developing applications and can lead to implementing an independent supply chain in software development due to improved abstractions that clearly separate building from assembly.
Explore in-depth articles and analysis related to the Arshu Assembler framework.
Try the Arshu Assembler in action with live demos deployed on fly.io:
All projects have idle tracking implemented with auto shutdown after 10 seconds of inactivity due to deployment on fly.io (Usage-Based Infrastructure).
| Language | Type | Demo Link |
|---|---|---|
| JavaScript | Client Side Assembly | jsassembler.fly.dev |
| C# | Server Side Assembly | csharpassembler.fly.dev |
| Rust | Server Side Assembly | rustassembler.fly.dev |
| Go | Server Side Assembly | goassembler.fly.dev |
| Node.js | Server Side Assembly | nodeassembler.fly.dev |
| PHP | Server Side Assembly | phpassembler.fly.dev |
The framework implements a component-oriented architecture for composing markup and data.
All language implementations are feature complete for the previous phase (Phase 2 - Static Assembler):
Each language implementation includes:
Get started with Arshu Assembler in your preferred language:
git clone https://github.com/Srid68/Arshu.Assembler.git
cd Arshu.Assembler
cd csharp/AssemblerTest
dotnet run
cd csharp/AssemblerWeb
dotnet run
For detailed instructions for each language, see the Getting Started Guide.
I am interested in collaborating on the following topics:
Contact: srid68 [at] gmail.com
Pair Programming with AI: $25 USD per hour session for recreating this project
Subscription Freelancing: $250 USD/Month for up to $10,000 USD worth of work