- Download Protobuf for the target language of choice.
- Download the latest release of Geode.
Start a Geode server with the following
gfsh
commands:Code Block language bash theme Emacs title Start Server gfsh>start locator --name=locator --bind-address=localhost --port=10334 ... gfsh>start server --name=server --server-port=40404 --bind-address=localhost ... gfsh>create region --name=SampleData --type=REPLICATE Member | Status ------ | ---------------------------------------- server | Region "/SampleData" created on "server"
- Locate Protobuf message definition artifact in the downloaded Geode release, e.g.,
$GEODE_HOME/tools/ClientProtocol/geode-protobuf-definitions-{versionNumber}.zip.
Unzip Protobuf protocol message definitions. Using the relevant target language Protobuf library, generate the language bindings from the message definitions.
- Create your application that connects a TCP socket to the server running on the
localhost
, on port40404
. - Write byte
110
to the socket. Build a handshake request message, write it in a delimited fashion to the socket, and read the handshake response message in a delimited fashion from it.
Code Block language js theme Emacs title handshakeRequest handshakeRequest { version { major: 1 minor: 0 } authenticationMode: NONE }
Code Block language js theme Emacs title handshakeResponse handshakeResponse { ok: 1 }
Build a put request message to put the value
bar
for the keyfoo
, write it in a delimited fashion to the socket, and read the put response message in a delimited fashion from it.Code Block language js theme Emacs title putRequest message{ putRequest { regionName: "testRegion" entry { key { stringResult: "foo" } value { stringResult: "bar" } } } }
Code Block language js theme Emacs title putResponse message{ putResponse { }
Verify the put with the following
gfsh
command:Code Block language bash theme Emacs title Verify Put gfsh>get --region=SampleData --key=foo Result : true Key Class : java.lang.String Key : foo Value Class : java.lang.String Value : bar