Skip to content
This repository has been archived by the owner on Oct 29, 2024. It is now read-only.

why this is not in the core repo #1

Open
Simon-Laux opened this issue Oct 22, 2022 · 1 comment
Open

why this is not in the core repo #1

Simon-Laux opened this issue Oct 22, 2022 · 1 comment

Comments

@Simon-Laux
Copy link
Member

Simon-Laux commented Oct 22, 2022

We can later move it there, but for now:

  1. deltachat-node has its package.json in the root of the repo so it is the only one installable via git (through npm install https://github.com/deltachat/deltachat-core-rust.git), though I'm unsure if napi.rs packages can even be installed via git?
  2. I'm not sure if then napi-rs cli supports being run from a sub folder? (It should work fine I guess, but could also be that it creates tags or other shenanigans, we should test it in this dedicated repo first)
  3. The ci to build all releases is rather heavy, not sure wether we want to run it often in the core repo.
  4. The Jsonrpc-api is already tested in the core repo, so not too many unique errors that new versions/commits to core can introduce here.

Also I'm unsure whether we should really migrate to use this in desktop instead of deltachat-node:

Pros

  • does already build most platforms to prebuilds on gh actions automatically
  • cleaner code
  • no building ever on install on user devices, which saves time, but can also be a con see bellow
  • easy to have an apple M1 version (though adjusting deltachat-node to have it is also possible.)
  • could help us make a 32bit version for windows with electron

Cons

  • if no prebuild is found that's it, it is not possible to have it compile on npm-install like deltachat-node
    • which also reinforces that builds from git are not possible anymore
    • possibly harder to install on "usuported" architectures
  • linking to systemwide libdeltachat is not possible anymore, which our flatpak and nix build depend upon.
    • since there is no stable rust ABI yet (and even if there were it would be too much work to make it work), maybe a libdeltachat-jsonrpc that exposes an interface over stdin/stdout pipes, websocket or similar could make that possible
  • substantial amount of work

As we plan to switch to tauri anyway, I don't see the real benefit of switching it for desktop, we should rather just say we phase out deltachat-node as being "deprecated/obsolete" for anything besides dc desktop and that they should use the napi-jsonrpc bindings instead.

@Simon-Laux
Copy link
Member Author

Simon-Laux commented Mar 12, 2024

In the end we want to now have a package that uses the stdio-server-binary instead of dealing with NAPI linking stuff.
https://github.com/deltachat/deltachat-core-rust/tree/main/deltachat-rpc-server

So starting a sub process and talking with it over stdio instead of node bindings (be it this repo or deltachat-node, both are node bindings)

I started making the new package at deltachat/deltachat-core-rust#5332

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant