3 ms·
G'day! A year or so ago I was playing around with building an online Introduction to Python course, but I got distracted by this problem that seemed like it sho
by benno128 5y ago
G'day! A year or so ago I was playing around with building an online Introduction to Python course, but I got distracted by this problem that seemed like it should be solved: how can I embed runnable snippets on the web?
There’s a bunch of closed-source solutions that rely on other services. I was hoping for a way to just install a package, and then run code. Especially small snippets like print, input and if statements.
So I started building Runno. It lets you embed snippets of code from a few different languages (Python, JavaScript, C, C++ and SQL currently) within your website and runs it all client side using Web Assembly. You can use it without any packages using an iframe, or install the npm package and use it as a Web Component.
Happy to answer any questions you have about it!
- kiwicopple 5y agoThis is very cool - I’ve wanted to do something like this on our docs at supabase. I’ll give it a go! I see that you did a lot of work to make it function on iOS. Is there a fallback mechanism for older browsers where this wouldn’t be supported?
- benno128 5y agoYeah I love the use case of documentation! Right now Runno wouldn't be great for libraries (or web requests!) but it's definitely something I'd like to support. I guess it would depend on the browser. There's two different fallbacks for the IO. So if the env doesn't support SharedArrayBuffer it will fallback to using a ServiceWorker hack. If that's not supported it will fallback to using an input prompt. But if the browser doesn't support WebAssembly there's no fallback mechanism. PS: Thanks!