Replies: 3 comments
-
update: Using cgo and C was working but it was a lot of code and had to build encoders and decoders for every struct that gets passed back and forth. I was also worried about the general acceptance of running in the same address space as the primary application and the potential of taking it down or creating a security concern. I paused and looked at gRPC using IPC and after getting an initial footing, this is definitely faster development. It will likely result in slower performance but I can circle back and optimize for any high traffic areas. |
Beta Was this translation helpful? Give feedback.
-
Update: this is still my active project. Things are progressing well, but I underestimated the amount of work. One of the goals is to make each language's API similar. So python is driving some changed to Go's API but this will all be in a branch and be merged in w/plenty of notice as well as a tag created before the merge. |
Beta Was this translation helpful? Give feedback.
-
Another update: Almost ready to merge Python support into main. The "lang" repo holds the code and I am updating the docs on site at the same time. Reach out if you want to know more details. I cannot even express how happy I am with how it is shaping up. This is also great stepping stone to supporting other languages. Also reach out if you want to make an argument as to which language would be best next; Java, Rust, C#, Javascript,... |
Beta Was this translation helpful? Give feedback.
-
Few years ago I ported freeconf to java. While I was happy with it, it took a month and only had a small fraction of features. Freeconf has changed so much now, I'd have to start over and finish feature set. Then I'd have to do the same for python and js and C# and c++ and etc. Time-wise, this approach isn't practical. Even after the initial support, keeping all up to date will be impossible.
So I'm taking another look at language interop options: e.g. python talking to Go and vice versa. I started w/Grpc but got chatty and messy quick. Turned to Go -> C -> Python and this is producing some promising results.
I realize native drivers are much preferred for each language but it is not feasible for me at this time.
Beta Was this translation helpful? Give feedback.
All reactions