Introducing RingScript: Ring Meets the Browser via WebAssembly

287 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 PMAug 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 PMAug 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 PMAug 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 PMAug 2
to The Ring Programming Language
Hello Mansour

You are welcome :D

Greetings,
Mahmoud

Youssef Saeed

unread,
Aug 2, 2026, 3:12:10 PMAug 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 PMAug 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 PMAug 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 AMAug 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 AMAug 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 AMAug 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 AMAug 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 AMAug 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 AMAug 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 AMAug 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 AMAug 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 AMAug 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 AMAug 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 PMAug 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 PMAug 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 PMAug 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 PMAug 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 PMAug 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 PMAug 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 PMAug 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 PMAug 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.

Mahmoud Fayed

unread,
Aug 7, 2026, 11:03:09 AMAug 7
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."

Thank you very much :D

(1) Could you remove my name from this page: RingScript Playground — the Ring language in your browser
We are one team, and avoiding mentioning names in such a beautiful feature will be too much better and attractive to new Ring developers

(2) Feel free to send a pull request and add the amazing RingScript package to RingPM registry: ring/tools/ringpm/registry/registry.ring at master · ring-lang/ring

Mansour Ayouni

unread,
Aug 8, 2026, 10:49:34 AMAug 8
to Mahmoud Fayed, The Ring Programming Language

Hello Mahmoud,

Thank you very much.

I removed your name from the playground and updated the website with blog and news sections where I can share my learnings and the technical challenges I’ve encountered.

I also just finished a performance optimization that makes RingScript as responsive as Lua and QuickJS on WebAssembly, and even better than both on 4 out of 9 criteria: https://mayouni.github.io/ringscript/data.html

This requirement was raised by my bank customer in Niger, as they need to manipulate local data containing tens of thousands of records. I just conducted a conclusive demo with them this morning, and I also created a sample interactive application to showcase this capability on the website: https://mayouni.github.io/ringscript/playground/ledger.html

Next, I’ll add the package to the Ring RingPM registry.

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.

Mahmoud Fayed

unread,
Aug 8, 2026, 11:27:41 AMAug 8
to The Ring Programming Language
Hello Mansour

You are welcome :D

>> "This requirement was raised by my bank customer in Niger, as they need to manipulate local data containing tens of thousands of records. I just conducted a conclusive demo with them this morning, and I also created a sample interactive application to showcase this capability on the website"

Very good new, Thanks for sharing :D

Greetings,
Mahmoud

Mansour Ayouni

unread,
Aug 10, 2026, 10:41:23 AMAug 10
to Mahmoud Fayed, The Ring Programming Language
Hello everyone,

The screenshot is a client-visit application for a bank in Niger. It works with no connection and syncs when one comes back. It also served as the debut for RingScript in a real-world, client-facing setting.

I have now put a small version of that pattern on the site, as a complete web project you can read and use in a sitting.


The sample application can be tested without installation here:
https://mayouni.github.io/ringscript/samples/route-orders/

There is a switch marked "Cut the connection". Press it and keep working.

The folder of the web application with its source code is accessible here:

Six files, no build step. The interface is plain HTML and CSS, the wiring is a little JavaScript, and all the business logic — price tiers, discounts, tax, stock, the credit limit, the outbox and the sync — is one Ring file running in the browser on the real Ring VM.

I hope this helps you build your next local(first application using Ring and RingScript.

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.
ringscript-app-local-first.png

Mahmoud Fayed

unread,
Aug 10, 2026, 12:50:51 PMAug 10
to The Ring Programming Language
Hello Mansour

Wonderful work :D

Thanks for sharing :D

Greetings,
Mahmoud

Mansour Ayouni

unread,
Aug 15, 2026, 6:02:11 AMAug 15
to The Ring Programming Language
Hello,

Yesterday, I was asked by my customer, a restaurant in France, to make their customer-facing app a local-first Progressive Web Application (PWA), providing a more dynamic and intuitive experience for both the restaurant and its customers.

The restaurant can update the menu and prices on the server, while customers can get the latest version the first time they use the app, install it quickly, and run it like a native app.

After that, the app acts as a cached local application that can work both offline and online, making only minimal requests to the server.

RingScript turned out to be a strong fit for this use case, and the sample proves it. Read about the experience and learn how PWA works here:
https://mayouni.github.io/ringscript/blog-pwa.html

All the best,
Mansour

Mahmoud Fayed

unread,
Aug 15, 2026, 9:50:20 AMAug 15
to The Ring Programming Language
Hello Mansour

Congratulations on these beautiful achievements

Keep up the GREAT WORK :D 

Greetings,
Mahmoud

Mansour Ayouni

unread,
Aug 15, 2026, 10:02:14 AMAug 15
to Mahmoud Fayed, The Ring Programming Language

Hello Mahmoud,

It was a very rewarding moment after months of work on RingScript.

Look at my customer's enthusiasm after receiving the installation package and seeing the application just work: the server on his macbook machine, PWAs on mobile phones for the restaurant staff, plus a native android tablet KDS in the kitchen (since i need sound synthesis there).


image.png

I think this is proof that Ring is one of the most capable languages around. We just need to believe in it and leverage all its power and beauty to build applications that meet real customer demands.

I hope we will see more in this direction in the future. I personally have more to share. 🙂

Best,

Mansour


Mahmoud Fayed

unread,
Aug 15, 2026, 10:07:27 AMAug 15
to The Ring Programming Language
Hello Mansour

This is wonderful :D

Thanks for sharing the good news :D

Greetings,
Mahmoud

Reply all
Reply to author
Forward
0 new messages