Implementing plugins by other languages

I have no experience on Go programming. May Dgraph plugin be implemented by Rust or C language?

For now you can use gRPC or HTTP to connect any language who supports it. It would be interesting the support these and other languages come from the community. I believe that in the short term these languages will not be supported.

example for http https://github.com/dgraph-io/dgraph-js-http

gRPC Rust https://github.com/stepancheg/grpc-rust

gRPC C https://github.com/Juniper/grpc-c

Cheers.

Is this a solution, FFI lib coding by rust, Go plugin as helper to call the lib? So it is FFI question of Go module.

grpc is a framework that uses Protocol Buffers as interface.

I do not program in Rust or C. However, grpc is an option that exists in Dgraph for many languages. I did a quick search of libs in Rust and C that had already used grpc as an example for you. That’s all.

But I certainly confuse your question. You’re talking about this here https://docs.dgraph.io/query-language#implementing-a-plugin I suppose.

Basically, if it is not in the documentation it is not supported in principle.

Thank you very much. I propose to add an actor model layer for dgraph. So the vertices may be treated as actors with properties, relations and active methods. I just want a feature of dgraph to support function field with parameters as input. And the function should be loaded as plugin and be executed in sandbox, that may be implemented by any language can compiled into WASM package or dynamic library. For some computationally intensive function or scriptable logic, Go language may not be the best choice.

1 Like

Thanks @garyhai. I collected this feedback as we are prioritizing all of our feature requests.