Introducing RingScript: Ring Meets the Browser via WebAssembly

148 views
Skip to first unread message

Mansour Ayouni

unread,
Jan 31, 2026, 3:53:43 PMJan 31
to The Ring Programming Language
Hello Ring friends,

One of our Arabic proverbs says: « الحاجة أمّ الاختراع » — literally, “Necessity is the mother of invention.”

In my work on the Organizum software at Sonibank, I needed to integrate Ring across backend and frontend. This strengthens my pitch for Ring as a must-master language, showing to the IT team how it simplifies web apps by avoiding JavaScript's complexity (that they hate) — replacing *.js files with *.ring ones for business logic modules.

Thus, RingScript was born: enabling browser execution like JavaScript, powered by WebAssembly.

image.png

@Mahmoud: Remember our chat years ago about this? Your TryRingOnline inspired me — I swore I'd build it, following your path.

Thanks to you, WebAssembly, and Google Gemini AI (superior to Claude here), my prototype works! I'll integrate it into StzWeb (my opinionated dead-simple framework for crafting professional-grade web apps), use it in Organizum, and share it soon.

All the best,
Mansour

Antonio F.S.

unread,
Jan 31, 2026, 5:20:22 PMJan 31
to ring...@googlegroups.com

Hello Mansour,

This is great news for me, as my retraining in IT in recent years, moving from older languages, has been focused on the web. I sometimes wondered what Ring would be like in that regard, and with your creation, RingScript, you've already given me a general idea.

I have a lot of work with Ring, and it's growing all the time. :-) :-)

Fraternal greetings,
Antonio F.S.
--------------------------------------------------------------------

El 31/1/26 a las 21:53, Mansour Ayouni escribió:

Mansour Ayouni

unread,
Jan 31, 2026, 5:25:11 PMJan 31
to Antonio F.S., ring...@googlegroups.com
Hello Antonio,

Thank you for your gentle reply.
I will publish it in a dedicated github repo soon so you can use it.

All the best,
Mansour

--

---
You received this message because you are subscribed to the Google Groups "The Ring Programming Language" group.
To unsubscribe from this group and stop receiving emails from it, send an email to ring-lang+...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/ring-lang/aea0beb9-bd71-4c64-ad41-2bfd74b79089%40gmail.com.

Antonio F.S.

unread,
Jan 31, 2026, 5:33:14 PMJan 31
to Mansour Ayouni, ring...@googlegroups.com
Hello Mansour,

It's a pleasure to do so.

Thank you.
Fraternal greetings,
Antonio F.S.
---------------------------------------------------------------------

El 31/1/26 a las 23:24, Mansour Ayouni escribió:

Mahmoud Fayed

unread,
Jan 31, 2026, 7:04:05 PMJan 31
to The Ring Programming Language
Hello Mansour

>> " @Mahmoud: Remember our chat years ago about this? Your TryRingOnline inspired me — I swore I'd build it, following your path."

This is beautiful direction, waiting for your achievements to try it :D

Keep up the GREAT WORK :D

Greetings,
Mahmoud

Mansour Ayouni

unread,
Feb 5, 2026, 11:22:37 PMFeb 5
to Mahmoud Fayed, The Ring Programming Language
Hello Mahmoud, Youssef, and All,

Here is the repository for the RingScript project in its current state. Basic Ring scripts are working, though scripts using complex lists or objects are not yet supported. I hope you’ll take a look.  


Best,
Mansour

--

---
You received this message because you are subscribed to the Google Groups "The Ring Programming Language" group.
To unsubscribe from this group and stop receiving emails from it, send an email to ring-lang+...@googlegroups.com.

Bert Mariani

unread,
Feb 6, 2026, 10:05:24 AMFeb 6
to The Ring Programming Language
Hi Mansour

RE: " Type this command in your console: ringpm install ringsrcipt from mayouni"

Doesn't do anything ??

===========================================
c:\ring> ringpm install ringsrcipt from mayouni
Installing ringsrcipt (master)

c:\ring>

===========================================
References to Web Assembly -- Drive D:  ??
  • D:\wasm\emsdk

  • D:\wasm\emsdk\upstream\emscripten


==========================================
Comment:
  After looking at the generated code and files etc
  How would you understand and  debug anything ?


Regards
Bert Mariani

Mansour Ayouni

unread,
Feb 6, 2026, 11:25:39 AMFeb 6
to Bert Mariani, The Ring Programming Language
Helo Bert,

Sorry it's an errounous indication!
I did not prepare it for Ring PM yet.

You need to download using git or GitHub Desktop.

Best,
Mansour

Mansour Ayouni

unread,
Aug 2, 2026, 12:21:02 PM (2 days ago) Aug 2
to Bert Mariani, The Ring Programming Language

Hello everyone,

I'm pleased to announce the release of RingScript, which I completely redeveloped using Zig and Fable 5, then validated against hundreds of Ring examples.

With RingScript, you can now run Ring applications directly in the browser with ease.

You can find all the details, including installation instructions and usage documentation, here:
https://mayouni.github.io/ringscript/index.html

All the best,

Mansour

Mahmoud Fayed

unread,
Aug 2, 2026, 1:35:18 PM (2 days ago) Aug 2
to The Ring Programming Language
Hello Mansour

>> "I'm pleased to announce the release of RingScript, which I completely redeveloped using Zig and Fable 5, then validated against hundreds of Ring examples."

Wonderful work, Thanks for sharing :D

Added to Ring Website - News Section 

Greetings,
Mahmoud

Mansour Ayouni

unread,
Aug 2, 2026, 1:52:56 PM (2 days ago) Aug 2
to Mahmoud Fayed, The Ring Programming Language
Thank you a lot Mahmoud!
All the best,
Mansour

Mahmoud Fayed

unread,
Aug 2, 2026, 1:53:50 PM (2 days ago) Aug 2
to The Ring Programming Language
Hello Mansour

You are welcome :D

Greetings,
Mahmoud

Youssef Saeed

unread,
Aug 2, 2026, 3:12:10 PM (2 days ago) Aug 2
to The Ring Programming Language
Hello Mansour,

Congratulations on releasing RingScript! Great work as always.

Best regards,
Youssef

Mansour Ayouni

unread,
Aug 2, 2026, 3:29:12 PM (2 days ago) Aug 2
to Youssef Saeed, The Ring Programming Language
Thank you a lot Youssef!
All the best,
Mansour

Dr_Mohamed Mustafa

unread,
Aug 2, 2026, 3:31:27 PM (2 days ago) Aug 2
to Youssef Saeed, The Ring Programming Language
If I have videos in any format as well as pictures and audio and pdf 
Can I encrypt this content and put it in a container with an MMR extension

And this is a special extension of my name.

Then make an app that decrypts it using an encryption key or any other technology. 

Mansour Ayouni

unread,
Aug 3, 2026, 7:46:43 AM (yesterday) Aug 3
to Youssef Saeed, The Ring Programming Language
Hello Mahmoud, Bert and other (old) friends,
Hello everyone,

You may remember that late in 2020 I talked to you about an experimental project I made for a lightweight aircraft manufacturer in Tunisia  (https://avionav.net/) to build an interactive cockpit. This is a reminder:

image.png

The project used RingQt and started well thanks to Ring simplicity, until the team at the company faced the complexity of Qt toolchain and unsolvable issues regarding performance.

Yesterday, I showed RingScript to my friend Foued Kamel, CEO of Avionav. He was immediately impressed by how an entire programming language can be ported to the browser while still starting up almost instantly, in stark contrast to what he had previously experienced with Qt for WebAssembly.


This is what he said today on Facebook about that experience:

image.png

Translated in english:

I had the honor of enjoying the speed of downloading a full language in the browser in the blink of an eye.

And that speed surpassed what Qt can do.

I once thought about using QT to develop some software to control drones and robots.. but after we tried RingScript yesterday.. I changed my mind to support what our brother Mansour is doing and use it for everything I can do in this language.

And yesterday I learned a lot regarding the future of AI.. whose future I think is currently being written in some halls of the city of Sousse, in the mind and heart of my dear friend Mansour.

Yet another potential customer for Ring and Softanza I will take care to prepare for, with patience and responsibility.

We will start prototyping a dedicated solution for him soon...

And I will let you know.

All the best,
Mansour

Mahmoud Fayed

unread,
Aug 3, 2026, 10:12:19 AM (yesterday) Aug 3
to The Ring Programming Language
Hello Mansour

Thank you for sharing such a wonderful news :D

Keep up the GREAT WORK :D

You are pushing Ring many steps forward :D

Greetings,
Mahmoud

Bert Mariani

unread,
Aug 3, 2026, 10:44:21 AM (yesterday) Aug 3
to The Ring Programming Language
Hello Mansour

RE:  ".... then validated against hundreds of Ring examples....
              With RingScript, you can now run Ring applications directly in the browser with ease...."

Can you test it against:
    Stock-Analysis-All.ring  
a standalone Ring GUI programs that fetches stock quotes from Yahoo.

CMD line:   ring StockAnalysis-All.ring
1.  Click on "Get Quotes" button
               After 252 quotes are downloaded
2.  Click "Run Analysis" button to draw chart

The Brower in Web-Assembly is unable to handle Curl.

I hope RingScript can do it !

Snap1.png

Thanks
Bert Mariani
Snap1.png

Bert Mariani

unread,
Aug 3, 2026, 10:56:54 AM (yesterday) Aug 3
to The Ring Programming Language
Hello Mansour

RE:  "...  to build an interactive cockpit ..."

Yes, I remember that very clearly. It was to support airplane dials in the cockpit using QT and Ring.
The main drawback was "  issues regarding performance. "
An interpreted language drawback.

Motto
A programmer's  life should be hard and slow to Develop an App.
The User's life should be easy and fast and intuitive to Run the App.
1 Programmer's  Time and Effort  vs 1,000,000 Users' Time and Effort.

As you User said
"I had the honor of enjoying the speed of downloading a full language in the browser in the blink of an eye."

Speed is a function of Hardware Architecture.
Software needs to use hardware properly as it was designed to be used.

Best Regards
Bert Mariani

Mansour Ayouni

unread,
Aug 3, 2026, 10:57:39 AM (yesterday) Aug 3
to Mahmoud Fayed, The Ring Programming Language
Hell Mahmoud,

Thank you for your message!
Rig deserves the best, and I'm happy to be part of it's success.

All the best,
Mansour

Mansour Ayouni

unread,
Aug 3, 2026, 11:02:00 AM (yesterday) Aug 3
to Bert Mariani, The Ring Programming Language
Hello Bert,

RingScript itself can't do it, because it's constrained but what WebAssembly can do inside the browser (no file system, no graphics, no network calls...).

If you want your app to be ported to the web, then it can be designed to get it's pour logical part in RingScript and the other parts in HTML and JS.

Or, you wait for StzWeb, the  Softanza Web application framework that simplifies all this.

All the best,
Mansour

Mansour Ayouni

unread,
Aug 3, 2026, 11:05:15 AM (yesterday) Aug 3
to Bert Mariani, The Ring Programming Language
Hello Bert,

My strategic answer to this requirement was to rewrite the engine of Softanza in Zig and keep the thinking craft in Ring.
Sofanza apps combine the brute force of the hardware with the expressiveness of higher language.

Best,
Mansour

Bert Mariani

unread,
Aug 3, 2026, 11:14:24 AM (yesterday) Aug 3
to The Ring Programming Language
Hello Mansour

RingScript itself can't do it, because it's constrained but what WebAssembly can do inside the browser (no file system, no graphics, no network calls...).
WebAssembly can not do it

If you want your app to be ported to the web, then it can be designed to get it's pour logical part in RingScript and the other parts in HTML and JS.
HTML and JS can not do it

Or, you wait for StzWeb, the  Softanza Web application framework that simplifies all this.
The Brower is  the problem.

Thanks
Bert Mariani

Mansour Ayouni

unread,
Aug 3, 2026, 11:23:04 AM (yesterday) Aug 3
to Bert Mariani, The Ring Programming Language
Hello Bert,
  • WebAssembly can do the logical parts (calculations, algorithmics, etc)
  • HTML can do the presentation part and JS the user interaction and network part
  • JS can also do the logic and algorithmic part if you want
  • The advantage of RingScript is that it allows writing this logic in Ring instead of JS
  • The browser can do your app because it's HTML/JS + DOM/WebAssembly
Best,
Mansour

Bert Mariani

unread,
Aug 3, 2026, 11:54:32 AM (yesterday) Aug 3
to The Ring Programming Language
Hello Mansour

Re: "...The browser can do your app because it's HTML/JS + DOM/WebAssembly..."

Except it does Not Do it !!
If you can get it to work great !

load "libcurl.ring"    <===  Browsers are not capable
load "stdlibcore.ring"
load "jsonlib.ring"
load "guilib.ring"
load "csvlib.ring"

Bert Mariani

unread,
Aug 3, 2026, 5:13:19 PM (yesterday) Aug 3
to The Ring Programming Language
Hello Mansour

I went to, and downloaded the RingScript

How do I start the Brower ...
Start RingScript ...
Then run an existing  Ring App ...
What are the sequence of steps and commands  ...

To say run  C:\ring\applications\analogclock\AnalogClock.ring

=======================================
C:\ring\tools\ringpm\packages\ringscript-0.9

=======================================
c:\ring>RingScript.boot()
'RingScript.boot' is not recognized as an internal or external command,
operable program or batch file.

=======================================
c:\ring>ringpm install ringscript from mayouni
Installing ringscript (master) ---> ringscript-0.9 (0.9)
Download Package Files For ringscript
Download File : main.ring
Download File : lib.ring
Download File : package.ring
Download File : README.md
Can't download the file : https://raw.githubusercontent.com/mayouni/ringscript/master/README.md
Download File : LICENSE
Download File : playground/ringscript.js
Download File : playground/ringscript.wasm
Download File : playground/index.html
Download File : playground/examples-data.js
Download File : playground/examples/README.md
Download File : playground/examples/hello-world.ring
Download File : playground/examples/print-numbers.ring
Download File : playground/examples/say-hello.ring
Download File : playground/examples/sum-two-numbers.ring
Download File : playground/examples/using-functions.ring
Download File : playground/examples/using-objects.ring
Download File : playground/examples/variable-scope.ring
Download File : playground/examples/using-lists.ring
Download File : playground/examples/lists-as-hashtables.ring
Download File : playground/examples/exit-two-loops.ring
Download File : playground/examples/using-evals.ring
Download File : playground/examples/change-keywords-arabic.ring
Download File : playground/examples/call-methods-braces.ring
Download File : playground/examples/brace-expr-eval.ring
Download File : playground/examples/natural-commands.ring
Download File : playground/examples/main-menu.ring
Download File : playground/examples/functional-map.ring
Download File : playground/examples/first-class-functions.ring
Download File : playground/examples/equality-of-functions.ring
Download File : playground/examples/operator-overloading.ring
Download File : playground/examples/inheritance-super.ring
Download File : playground/examples/private-attributes.ring
Download File : playground/examples/packages.ring
Download File : playground/examples/reflection.ring
Download File : playground/site.css
Download File : playground/favicon.ico
Download File : cli/starter.html
Download File : docs/README.md
Download File : docs/getting-started.md
Download File : docs/scripting-pages.md
Download File : docs/api.md
Download File : docs/architecture.md
Download File : docs/compatibility.md
Download File : docs/zql-payload.md
Download File : bin/ringscript-serve-windows-x64.exe
Preparing ringscript

c:\ring>RingScript.boot()
'RingScript.boot' is not recognized as an internal or external command,
operable program or batch file.

Bert Mariani

unread,
Aug 3, 2026, 5:27:10 PM (yesterday) Aug 3
to The Ring Programming Language
Hello Mansour

Tried to follow the AI written documentation ...
Got the following error ??


c:\ring>ringpm install ringscript from mayouni
Installing ringscript (master) ---> ringscript-0.9 (0.9)
Download Package Files For ringscript
Download File : main.ring
Download File : lib.ring
Download File : package.ring
.....
Download File : docs/zql-payload.md
Download File : bin/ringscript-serve-windows-x64.exe
Preparing ringscript

c:\ring>

c:\ring>
c:\ring>ringpm run ringscript
Error(3) : We don't have this package
Package Name : ringscript


c:\ring>

Mansour Ayouni

unread,
Aug 3, 2026, 5:34:08 PM (yesterday) Aug 3
to Bert Mariani, The Ring Programming Language
Hello Bart,

You need to understand the basic concepts of a web application. It requires a different mindset and code architecture then desktop applications.

This page in the documentation explains it step by step:

I'm also working on a simple tutorial with the possibility to download only the required assets that gets you running instantly.

All the best,
Mansour

Bert Mariani

unread,
Aug 3, 2026, 5:43:43 PM (yesterday) Aug 3
to Mansour Ayouni, The Ring Programming Language
Hello Mansour

Show me how to run AnalogClock 


Mansour Ayouni

unread,
Aug 3, 2026, 6:09:18 PM (24 hours ago) Aug 3
to Bert Mariani, The Ring Programming Language
Hello Bert,

Working on an AnalohClock web application in RingScript...
image.png

I'll go back to you in a moment.
Best,
Mansour

Bert Mariani

unread,
Aug 3, 2026, 7:26:59 PM (22 hours ago) Aug 3
to Mansour Ayouni, The Ring Programming Language
Hello Mansour

It should be able to run the AnalogClock that is already in Ring,  as is with its existing look.

C:\ring\applications\analogclock\AnalogClock.ring


Mansour Ayouni

unread,
Aug 3, 2026, 8:25:28 PM (21 hours ago) Aug 3
to Bert Mariani, The Ring Programming Language

Hello Bert,

Thank you for insisting — it made me improve the site. Three things are new because of your questions:

  • Start here — a self-contained starter kit: one folder, one double-click, a Ring page running. Nothing to install.
  • Tutorial — building an analog clock web application in Ring, step by step.
  • Q&A — two new entries: "Can I run a Ring program I already have?" and "But Ring already runs in a browser — how is this different?"
https://mayouni.github.io/ringscript/

That second Q&A is the heart of your question, so let me summarise it here.

There are two roads, and both are real.

Mahmoud's Try Ring Online is RingQt for WebAssembly: Qt itself, GUI layer included, compiled to WebAssembly and painting onto a canvas. Existing RingQt programs — yours among them — are exactly what it is built for.

RingScript is not that. It compiles only the language: no Qt, no widgets, no forms. The page is ordinary HTML and Ring supplies the logic behind it.

What a visitor downloads before anything appears:

RingQt for WebAssembly   22.7  MB
RingScript                            0.35 MB
Sixty-five times smaller, because a web page is not a desktop application.

So your AnalogClock.ring cannot run on RingScript "as-is" — line 7 is load "lightguilib.ring", which loads a native Qt library from disk, and RingScript carries no Qt at all. That is not a gap to be filled later; it is the design.

Best,

Mansour

Bert Mariani

unread,
Aug 3, 2026, 8:58:24 PM (21 hours ago) Aug 3
to Mansour Ayouni, The Ring Programming Language
Hello Mansour

Also note that the Ring AnalogClock displays a clock that can be stretched vertically or horizontally with the mouse.

It can display a "stretched image"  with properly working clock hands that adapt to the dial image.

As noted the Web-Assembly example that Mahmoud put together worked properly as expected with the stretched image.


--

---
You received this message because you are subscribed to the Google Groups "The Ring Programming Language" group.
To unsubscribe from this group and stop receiving emails from it, send an email to ring-lang+...@googlegroups.com.
Reply all
Reply to author
Forward
0 new messages