6 ms·
Show HN: GoJava – Server/desktop Java bindings to Go packages
- scosman 11y agoI'm looking forward to when this exists for every almost language. Go added "c-archive" build mode in 1.5. There is no reason gobind couldn't support any language which can work with c libraries (ruby, node, etc).
- vendakka 11y agoThis exists for Python [0]. The reverse is also interesting (Go -> Java/Python/Ruby) and once I get some spare time, I'll play around with using libjvm to load and call jar files from Go. [0] https://github.com/go-python/gopy https://github.com/go-python/gopy
- rhodysurf 11y agoIts awesome. The problem is that only specific types are supported by a bunch of these types of libraries. In the case of gopy you cannot do anything with a nested slices in structs which limits things a bit.
- vendakka 11y agoYes this is definitely a little limiting. I'm also experimenting with a slightly different binding method, where passing pointers to structs is disallowed (gobind currently allows pointers to structs). All structs are only passed by value, which solves a lot of the underlying problems and allows for slices and nested structs. I'll have something tangible in a few weeks and might switch out the dependency on gobind. EDIT: edited for clarity
- rhodysurf 11y agoThats awesome news, Thanks for the explanation!
- alpb 11y agoIn case the author sees this, more documentation would be great.
- vendakka 11y agoYup. I'll put together some more docs and usage examples this weekend. Edit: https://github.com/sridharv/gojava/issues/6 https://github.com/sridharv/gojava/issues/6
- _JamesA_ 11y agoGo would benefit immensely from the ability to bind to JDBC drivers for database access.
- dguaraglia 11y agoWhat makes you think so? Go has pretty solid native drivers for most SQL databases out there: https://github.com/golang/go/wiki/SQLDrivers https://github.com/golang/go/wiki/SQLDrivers
- namelezz 11y agoSince GoJava generates jar binding, does it mean other JVM languages can use the jar to call Go too? Edit: Java has generic Go doesn't, how do the bindings work for generic?
- pookeh 11y agoYes
- vendakka 11y agoYes. The only constraint is that the jar will only work on the architecture it was built on.
- meddlepal 11y agoStill pretty awesome and that's not really a big deal. I'm going to guess most Java these days is running on x86_64 or ARM.
- vendakka 11y agoRegarding generics: the tool generates Java bindings from Go code. Since Go doesn't have generics we just generate non-generic bindings.