Ωedit architecture proposals #155
Replies: 5 comments 2 replies
-
From testing bindings with Java. I was able to create bindings to the shared library using SWIG to generate the Java wrappers, got it packaged and deployed using maven. However, I tried making a Scala project that would import this shared library and run into constant issues trying to activate library from the example from project or being able to access methods from the Java wrapper classes. Thinking this is because the Java methods are all static, which can't be accessed from non-static method and Scala doesn't have Scala. So it seems like there will be more work to be able to get Java working. So we have bindings working in node however it doesn't support callbacks. This is why we wanted to do Java as it would do callbacks in a different (not so great) way. But my vote is that for the amount of time it would take to get the Java bindings working it would be better used to get gRPC going. Furthermore, I think gRPC is the best way to go. Worse comes to worse I think if we absolutely want bindings to be supported in a language that will support a callback like functionality we try a different lanugage/ |
Beta Was this translation helpful? Give feedback.
-
Here is a working example of an Omega Edit websocket server with Scala that demonstrates callbacks using jnr-ffi. https://github.com/jw3/example-omega-jvm/blob/master/src/main/scala/examples/WebSocket.scala Depending on the design of such a server you wouldn't have to have them. |
Beta Was this translation helpful? Give feedback.
-
That example uses the .so produced by the Omega build. It is a little dated, but not changed in any way. I didn't convert anything, no tricks, just |
Beta Was this translation helpful? Give feedback.
-
Implementing the gRPC server in C++ and then maintaining it has been and will continue to be a challenge. Instead, we've converged on using Scala to implement the server, which will be attractive to other potential contributors and maintainers. The existing C++ gRPC server and client will continue to exist as a reference implementation, which will be useful as a reference as we create the Scala server and JavaScript client. |
Beta Was this translation helpful? Give feedback.
-
An implementation using the gRPC architecture with a Scala server is discussed (and shown) here #169. |
Beta Was this translation helpful? Give feedback.
-
We are currently exploring 2 different architectures to support end-user applications like VSCode plugins.
The gRPC approach is currently experimental and is being researched in the grpc branch.
Beta Was this translation helpful? Give feedback.
All reactions