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.

  • @flying_platypus
    link
    English
    11 year ago

    I think helix has been talking a lot about this issue too. Their solution, as far as I understand it, is to use a LISP language for scripting and extensibility and a wasm plugin system for performance critical plugins. Not sure how far it is into implementation, but something to look out for.