Our goal is to make Nuru accessible to everyone, everywhere. By compiling the core Nuru interpreter to WebAssembly (Wasm), we enable:
- Interactive Learning: Run Nuru code directly in your browser.
- Zero-Install Setup: No need to install Go or command-line tools to get started.
- Cross-Platform Compatibility: Use Nuru on any device with a modern web browser.
This repository is optimized as a monorepo.
Read here for more information.
@nuru/wasm: The heart of the project. A Go-based WebAssembly interpreter that bridges Nuru's backend logic with the browser's JavaScript environment.
nuru-svelte: The primary Nuru Playground. A fast, reactive web application built with Svelte that lets users write, run, and learn Nuru code interactively.nuru-playground: An alternative playground implementation using Next.js.
Follow these steps to set up the development environment.
- Node.js (^18.13)
- pnpm (Package Manager)
- Go (^1.19.0) - Required for building the WASM binary
-
Clone the repository:
git clone https://github.com/teKsafari/nuru-mono.git cd nuru-mono -
Install dependencies:
pnpm install
We use turbo to manage tasks across the monorepo.
-
Start Development Server (Runs all apps):
turbo run dev
-
Build All Packages & Apps:
turbo run build
-
Run Tests:
turbo run test
Tip: You can filter tasks to specific packages, e.g.,
turbo run dev --filter=nuru-svelte.
We welcome contributions! Whether you're fixing bugs in the WASM bridge, enhancing the playground UI, or improving documentation, your help is appreciated.
- Fork the repository.
- Create your feature branch (
git checkout -b feature/amazing-feature). - Commit your changes (
git commit -m 'Add some amazing feature'). - Push to the branch (
git push origin feature/amazing-feature). - Open a Pull Request.
Powered by NuruProgramming.
