Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

In-browser Freenet IDE using Rune #1053

Open
sanity opened this issue Apr 21, 2024 · 0 comments
Open

In-browser Freenet IDE using Rune #1053

sanity opened this issue Apr 21, 2024 · 0 comments
Labels
C-proposal Category: A proposal seeking feedback

Comments

@sanity
Copy link
Collaborator

sanity commented Apr 21, 2024

Abstract:

This is a proposal for an IDE based around Rune a scripting language built in Rust, to ease the development of decentralized apps on Freenet. Using Rune's intermediate bytecode and virtual machine (VM), we aim to make app creation more accessible to developers without deep Rust knowledge.

Background:

Rune is a dynamically typed scripting language that can be embedded in Rust applications. It compiles into bytecode for execution by a VM, and notably, both the compiler and VM can be embedded into WebAssembly (wasm), making it suitable for web use.

Proposal:

Incorporate the Rune VM into Freenet to facilitate the development of contracts and functions directly in Rune. This approach is designed to lower the barrier for developers by simplifying interactions with Rust's complexities.

Technical Details:

  • Rune VM and WebAssembly: The Rune VM and its compiler are wasm-compatible, allowing the execution of complex scripts in a secure, isolated environment.
  • Compiler Size: The current wasm implementations of Rune's compiler and VM total about 1MB, mainly due to the compiler. We may only need the VM, potentially reducing the wasm module's size.

Potential Benefits:

  1. Ease of Use: Rune's Rust-like syntax and simpler type system make it easier for new developers to start creating dapps.
  2. Lowered Entry Barrier: Developers can write in Rune instead of Rust, making the learning curve less steep.
  3. Secure Script Execution: The controlled wasm environment ensures that scripts run securely, preserving the integrity of Freenet's decentralized applications.

Implementation Steps:

  1. Initial Evaluation: Assess the technical feasibility and practicality of integrating the Rune VM with Freenet.
  2. Prototype Development: Build a prototype to integrate the Rune VM with a Freenet module to evaluate functionality and performance.
  3. Community Engagement: Gather feedback from the Freenet community and developers to refine the approach.

Request for Comments:

I invite the community to discuss the technical and practical aspects of this proposal. Insights into potential challenges, additional benefits, or other considerations are welcome. Feedback on both the approach and detailed implementation is especially valuable.

@sanity sanity added the C-proposal Category: A proposal seeking feedback label Apr 21, 2024
@sanity sanity assigned sanity and unassigned sanity Apr 21, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
C-proposal Category: A proposal seeking feedback
Projects
None yet
Development

No branches or pull requests

1 participant