1. 13
  1.  

    1. 6

      This retrospective is amazing. So much information and feedback about the experience around xi. Thanks for sharing the link!

      1. 2

        One thing I’m curious about: how is it calling to/from Rust from Swift? I’d love to have app core logic in Rust if possible in some cases.

        1. 3

          The core is in Rust. The Mac frontend is in Rust. It’s using xml-rpc so front ends and other plug ins can be written in any language. I had/have high hopes this would replace Emacs for me (no reason to drop emacs really other than to have something more modern/fast.

          While development does continue, sadly it seems to be mired in it’s design choices. But… Emacs is getting lots of attention on it’s internals, so it may be moot ;)

          1. 1

            Small correction. The Mac front end is Swift. The xi core is launched as a separate process by the front end and communication between the processes occurs via JSON over STDIN/STDOUT.

            https://github.com/xi-editor/xi-mac

            1. 2

              Sorry, just a brain fart when typing that up, I knew that it was swift.

          2. 2

            Rust has the “extern c” directive to give you a c calling convention when building shared libraries. It’s a little unergonomic on the rust side as you have to convert between eg c and rust strings but jot too bad.

            1. 1

              Yup, and Swift can parse C headers and lets you call C functions in a similar way. Binding Rust to Swift in-process would just be a matter of declaring a suitable C interface between them.

          3. 1

            The design docs on CRDTs and “Rope Science” are fascinating. 🧐

            1. 1

              Isn’t this project pretty much dead?

              1. 2

                I don’t know; I starred it two or three years ago and just stumbled upon it again while searching for something unrelated. :)

                1. 1

                  with https://raphlinus.github.io/xi/2020/06/27/xi-retrospective.html and the repo activities it doesn’t look good :(

                  I wish this project would have succeeded. It was fascinating.