Hi, I Just started working on a Emacs-inspired text editor in Rust.

Being insipred by Emacs, the most important part Is the possibiliy to implement new components.

My ideas were:

  • Rust-based scripting language, like Rhai
  • RustPython (slower, but more compatible and lots of people know Python)
  • PyO3 (Bigger executable and not that fast)
  • Wasm/Wasi (Cross-platform, but I don’t know if the compatibility with Rust’s hosted functions and structs is good)
  • Other binded language, like V8, Lua or SpiderMonkey
  • Compiled plugins, like .so or .DLL (Fast, but not compatible; there should be Rust plugin frameworks for implementing this, but I don’t remember the name)

The elements to analyze are: speednees (consider it’s a text editor, so…), easy-to-develop and Cross-platform (if possible, not that important), but the possibility to execute functions in the host Rust program is EXTREMELY important.

Thoughts?

Thanks in Advance.

  • two_wheel2@lemm.ee
    link
    fedilink
    English
    arrow-up
    6
    ·
    1 year ago

    One thing I’ve been thinking about in this area is you could make the “plugin system” completely compiled. Users would have some toml or .rs file they would change and point the rust compiler at a directory and come out with a new binary. You could still add in a “Lua plugin” plugin which enables lua-based plugins without forcing all users to pull down the gear required to use that in rust. It would also make it possible for people to create various “distributions” of the editor with varying complexity and size depending on user needs