Vitalije has been looking into enhancing (somehow!) Leo with rust.  This is 
a worthy project, for several reasons, which need not be listed here.  

*Project champions never need my permission* to follow their dreams.  
Indeed, a champion is someone who persists in a dream despite indifference 
or even resistance from others.

This post explores various constraints on the final result of prototyping.  
Let's use the "you can do this if" guidelines. Leo can work with rust if:

1. Distributing Leo doesn't become substantially harder.  Not sure what 
this means.  In any case, we can ignore this constraint during prototyping.

2. Leo continues to use Qt for its gui.  Again, this constraint can be 
ignored during prototyping, but it should be taken seriously.

Imo, adding rust wrappers for the (C++) Qt code is something that the Qt 
people themselves might well offer.  Or the same effect might be gotten in 
other ways.  If not, rewriting leo.core.leoQt in rust would likely 
suffice.  So this will not likely be a gotcha.

3. All parts of Leo continue to work unchanged.  This includes the python 
api.

I believe this is feasible, despite rust being less "dynamic" than python.  
I've said several times that Leo's flexibility does not derive from 
python's dynamic nature.  For example, @command, @button and all the rest 
do not depend on monkey-patching Leo's classes.  The "dynamism" of @button 
happens just by creating new entries in tables.  That can be done in any 
language.

Likewise, adding a plugin just adds to existing data structures.  Adding a 
rust plugin would likely be feasible using a python wrapper around the rust 
code.  Or some other way.

There are a few places where Leo's code does monkey-patch code, but they 
aren't gotcha's.  The same effect could be gotten in other ways.

*Summary*

I have listed several constraints on integrating rust with Leo's python 
code base.  All are subject to revision.  I see no gotchas.  Have at it!

Edward

-- 
You received this message because you are subscribed to the Google Groups 
"leo-editor" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/leo-editor.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/leo-editor/87fbf3c1-94c3-40d1-9681-45a7e7ed202e%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to