Skip to content

Latest commit

 

History

History
505 lines (387 loc) · 21.3 KB

README.md

File metadata and controls

505 lines (387 loc) · 21.3 KB

TechScript 2.0 Logo

TechScript 2.0

Independent Programming Language · WebForge Full-Stack Framework · AppForge Native Engine

Website WebForge Demo Release License CI

VS Code Open VSX

Platforms Stars Issues PRs Welcome


Table of Contents

# Section
1 The Problem
2 The Solution
3 Why TechScript? (Comparison)
4 Installation
5 Quick-Start Syntax
6 Syntax Mental Model
7 WebForge Framework
8 AppForge Engine & Screenshots
9 Editor Extensions
10 AI Developer Skill
11 Architecture
12 Platform Support
13 Documentation Index
14 License

The Problem

Modern development is fragmented, bloated, and brittle:

# Problem Impact
1 Dependency Bloat Gigabytes of node_modules/venvs that break across OS boundaries
2 Ecosystem Fragmentation Separate languages for web (JS), API (Python), mobile (Kotlin/Swift), native (Rust/C++)
3 Ambiguous Mutations let/var/const/:= chaos creates subtle bugs and cognitive overload
4 AI Hallucination Decades of competing idioms cause agents to hallucinate invalid syntax

The Solution: What is TechScript 2.0?

TechScript 2.0 is an independent, high-performance general-purpose language built from first principles in native Rust, unified with WebForge (full-stack web) and AppForge (native mobile/desktop).

Pillar Detail
English-Like Locked Syntax is (declare), becomes (mutate), constant, to name(): — zero symbol noise
Zero-Dependency Binary Ships as a single tsc binary — no Python, no Node.js, no external VM
WebForge Reactive websites + SQLite + WebGL 3D in one .tech file to zero-dep static bundle
AppForge Cross-platform Android/desktop in pure .txs with liquid-glass hardware-accelerated UI
Locked AI Skill SKILL.md gives agents an immutable grammar spec — eliminates hallucinated syntax
Dual Execution Ultra-fast register-based VM for dev + LLVM backend for native machine code

Why TechScript? (Feature Comparison)

Feature TechScript 2.0 Python 3 TypeScript/Node Go
External Runtime None Python Interpreter Node / Bun None
Dependency Bloat Zero venv/site-packages Heavy node_modules Minimal
Web Framework Built-in WebForge External (Django/Flask) External (Next.js) External
Mobile Engine Built-in AppForge External (Kivy) External (RN) Not suited
Locked AI Skill SKILL.md None None None
Syntax Invariants is / becomes Mutable by default let/const/var := vs =
Verified Test Suite 100/100 Varies Varies Varies

Instant One-Line Installation

Zero prerequisites. Choose your OS:

Windows (PowerShell)

irm https://raw.githubusercontent.com/Tcode-Motion/techscript/main/scripts/install.ps1 | iex

Linux / macOS / Android Termux

curl -fsSL https://raw.githubusercontent.com/Tcode-Motion/techscript/main/scripts/install.sh | bash

Standalone Packages

Package Download
Windows Setup Wizard TechScript_Setup.exe — GitHub Releases
Portable Archive TechScript_Portable.zip
SHA256 Checksums SHA256SUMS.txt

Docker

docker run --rm ghcr.io/tcode-motion/techscript:latest --version
docker run --rm -v "${PWD}:/workspace" ghcr.io/tcode-motion/techscript:latest run main.txs

Canonical Syntax Quick-Start

# Constants and variables
constant platform_name is "TechScript 2.0"
counter is 0

# Functions: 'to name(params):' with colon + 4-space indent
to calculate_bonus(score, base_payout):
    if score >= 90:
        return base_payout * 2.0
    else if score >= 75:
        return base_payout * 1.5
    else:
        return base_payout

to greet_developer(name):
    say "Hello, {name}! Welcome to {platform_name}."

# Invocation
greet_developer("Engineer")
bonus is calculate_bonus(95, 500.0)
say "Awarded Bonus: {bonus}"

# Counted repetition
repeat 3 times:
    say "Writing clean, native, high-performance code."

# While loop — 'becomes' for explicit mutation
while counter < 2:
    counter becomes counter + 1
    say "Processing job {counter}..."
tsc run main.txs   # Run instantly

Syntax Rules at a Glance

Construct Syntax Example
Declare variable name is value count is 0
Reassign variable name becomes value count becomes count + 1
Constant constant name is value constant max is 5
Function to name(params): to greet(x):
Return return value return result
Print say "text {var}" say "Hi {name}"
If / Else if cond: / else if: / else: With 4-space indent
Repeat N times repeat N times: repeat 3 times:
For loop for item in list: With 4-space indent
While loop while cond: With 4-space indent

Syntax Mental Model & Invariants

flowchart LR
    Q1{"First use\nof variable?"}
    Q1 -- Yes --> S1["use 'is'\nscore is 100"]
    Q1 -- No --> Q2{"Changing\nexisting value?"}
    Q2 -- Yes --> S2["use 'becomes'\nscore becomes score + 10"]
    Q2 -- No --> S3["use 'constant ... is'\nconstant max is 500"]
Loading
  • No {} delimiters — blocks open with : and 4-space indentation
  • No prefix needed — "Count: {count}" interpolates natively, no $ or f
  • No ambiguous assignment — is vs becomes is always visually clear

WebForge: Full-Stack Declarative Web Framework

Main Website https://techscript.is-a.dev/
WebForge Live Example https://techscript.is-a.dev/techscript/

Compiles declarative .tech files — reactive UI, routing, embedded SQLite, WebGL 3D — to zero-dependency static bundles.

WebForge Code Sample

make a website called TechScriptForge

database Notes:
    table notes:
        title is text
        content is text

page Home:
    show heading "TechScript WebForge"
    show text "A full-stack site built with English-like TechScript!"

    show 3D scene called World:
        add cube:
            color is "purple"
            rotation speed is 3
        enable mouse controls

    show input "Write a note" called NoteInput
    show button "Save Note" called SaveButton

when SaveButton is clicked:
    send NoteInput to /api/notes
    show message "Saved!"

start website

WebForge CLI

tsc web create my-portal   # Scaffold new project
tsc web dev                # Hot-reload dev server on http://localhost:3000
tsc web build              # Compile to dist/ (zero-dep static bundle)

WebForge Compilation Pipeline

flowchart LR
    A[".tech Source"] --> B["AST Parser"]
    B --> C["SQLite Schema"]
    B --> D["Reactive DOM"]
    B --> E["WebGL 3D Engine"]
    C & D & E --> F["Static Bundle dist/"]
    F --> G["GitHub Pages / CDN"]
Loading

WebForge Demo Video


AppForge: Native Mobile & Desktop Engine

The companion app (examples/appforge/techscript-appforge/) is authored 100% in pure .txs on the native Android engine with hardware-accelerated liquid-glass UI.

Download Link
Release APK (v2.0.2) TechScript-AppForge-v2.0.0-release.apk
GitHub Releases Direct APK Download

Real Device Screenshots (Android 14 / 16)

AppForge Home
Home
AppForge Docs
Docs
AppForge Explore
Explore
AppForge Lab
Lab

AppForge Architecture

flowchart LR
    TXS[".txs Screens"] --> BRIDGE["JNI Native Bridge"]
    BRIDGE --> RENDER["Skia / Vulkan / GL"]
    RENDER --> GLASS["Liquid Glass UI"]
    GLASS --> TOUCH["Zero-Latency Touch"]
Loading

AppForge Screen Sample

screen Home:
    background is gradient("indigo", "violet")

    show card:
        show heading "TechScript AppForge"
        show text "Native Android, built in pure .txs"
        show button "Open Lab" called OpenLab

when OpenLab is tapped:
    navigate to Lab

Official Editor Extensions

Registry Publisher Extension ID VSIX Package Listing
VS Code Marketplace tanmoy tanmoy.techscript techscript-vscode-2.0.3.vsix Visual Studio Marketplace
Open VSX Registry Tcode-Motion Tcode-Motion.techscript techscript-openvsx-2.0.4.vsix Open VSX Registry

Features: LSP diagnostics, intelligent completion, semantic highlighting, colon auto-indent, canonical snippets, one-click build & run


AI Developer Skill

Ships with a first-class AI Developer Skill (skills/techscript/SKILL.md) — locked grammar spec, stdlib signatures, and CLI patterns for all major AI agents.

Platform Install
Google Antigravity / Agentic IDEs Auto-loaded from .agents/skills/techscript/SKILL.md
Cursor / Claude Code / Codex (POSIX) `curl -fsSL .../install.sh
Windows PowerShell `irm .../install.ps1

Full scripts: POSIX install.sh · PowerShell install.ps1


Architecture & Compiler Pipeline

flowchart TD
    SRC[".txs Source"] --> LEX["Lexer"]
    LEX --> PARSE["Parser to AST"]
    PARSE --> SEM["Semantic Analyzer\n'is'/'becomes' Invariants"]
    SEM --> IR["IR Lowering"]
    IR --> OPT["Bytecode Optimizer"]
    OPT --> VM["VM Execution\nFast Dev Mode"]
    OPT --> LLVM["LLVM / AOT Compiler"]
    LLVM --> WIN["Windows .exe"]
    LLVM --> AND["Android .so"]
    LLVM --> WEB["WebForge WASM/HTML"]
Loading

Ecosystem Overview

flowchart LR
    subgraph Tools["Toolchain"]
        CLI["tsc CLI"]
        LSP["LSP Server"]
        PKG["Packager"]
    end
    subgraph Frameworks["Frameworks"]
        STD["Stdlib (11 modules)"]
        WEB["WebForge"]
        APP["AppForge"]
    end
    subgraph Targets["Targets"]
        WIN["Windows x64"]
        LNX["Linux / aarch64"]
        MAC["macOS (Intel + AS)"]
        AND["Android APK"]
        WO["WebForge dist/"]
    end
    Tools --> Frameworks --> Targets
Loading

Platform Support Matrix

Platform Tier Artifact Status
Windows x86_64 Tier 1 TechScript_Setup.exe, tsc.exe 100/100 tests
Android APK Tier 1 TechScript-AppForge-v2.0.0-release.apk Real device verified
WebForge Static Tier 1 dist/ (HTML + CSS + JS + SQLite + 3D) Live at techscript.is-a.dev
Linux x86_64 / aarch64 Tier 1 .tar.gz pre-compiled CI/CD cross-compiled
macOS (Apple Silicon + Intel) Tier 1 .tar.gz pre-compiled Native macOS CI runner
Android Termux Tier 1 techscript-2.0.0-termux-aarch64.tar.gz aarch64-linux-android
Docker Tier 1 ghcr.io/tcode-motion/techscript Multi-stage slim GHCR

Complete Documentation Index

1. Core Language Specifications
2. Deep-Dive Language Guides
3. WebForge Full-Stack Framework
4. AppForge Mobile & Desktop Engine
5. Compiler, VM & Systems Engineering
6. CLI, Developer Tools & Standard Library
7. Tutorials, Guides & 100 Verified Examples
8. Governance, Release Engineering & Audits

License & Attribution

TechScript is open-source software licensed under the Apache License 2.0.
Created and maintained with love by Tanmoy Majumder (@Tcode-Motion).