<story><title>Using GraalVM to Run Native Java in AWS Lambda with Golang</title><url>https://engineering.opsgenie.com/run-native-java-using-graalvm-in-aws-lambda-with-golang-ba86e27930bf</url></story><parent_chain></parent_chain><comment><author>kodablah</author><text>You might be able to even compile Go as a static library and embed it in your binary instead of carrying a .so file around. Regardless, Go&amp;#x27;s FFI story (especially in that direction) is hobbled and you can&amp;#x27;t do things like share structs easily (for obvious reasons, but still annoying). But yes, as soon as you get to C-level, you can mix and match anything and write about it. Running Go in Rust, or Rust in Go, or Go in JS, or whatever.&lt;p&gt;What would really be neat is to leverage Graal&amp;#x27;s polyglot iface a bit higher. I am not sure the status of llgo these days, but compile Go to LLVM bitcode and then leverage that from Java and compile to a single binary. Or even expose Go&amp;#x27;s awesome stdlib to JVM developers that way. But the practicality of doing some of these things becomes a bit lost beyond toy use.</text></comment>
<story><title>Using GraalVM to Run Native Java in AWS Lambda with Golang</title><url>https://engineering.opsgenie.com/run-native-java-using-graalvm-in-aws-lambda-with-golang-ba86e27930bf</url></story><parent_chain></parent_chain><comment><author>benmmurphy</author><text>the other alternative is to just implement the go-aws-lambda protocol. it is basically a bunch of go RPC calls that AWS makes to a port that you listen on. if you do it correctly it should be safe to run because AWS can&amp;#x27;t change the protocol in a way that is not backwards compatible with existing go projects. any language that can compile statically and be run on linux can run on AWS lambda because static-go binaries can be deployed to AWS lambda.&lt;p&gt;but this is probably a little less riskier because i&amp;#x27;m sure if AWS made a change to the go protocol they would test it against their existing go libraries they have published but they can&amp;#x27;t test it against your &amp;lt;insert language&amp;gt; implementation.</text></comment>