Thrift Client. Golang
ΠΡΠΈΠΌΠ΅Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° Π΄Π»Ρ Thrift ΡΠ΅ΡΠ²Π΅ΡΠ°. ΠΠΎΡΠ»Π΅Π΄Π½ΡΡ ΡΡΡΠΎΠΊΠ° ΡΡΠΎ Π²ΡΠ·ΠΎΠ² ΠΌΠ΅ΡΠΎΠ΄Π°.
func main() {
transportFactory := thrift.NewTFramedTransportFactoryConf(thrift.NewTTransportFactory(), nil)
protocolFactoryBinary := thrift.NewTBinaryProtocolFactoryConf(nil)
// protocolFactoryCompact := thrift.NewTCompactProtocolFactoryConf(nil)
protocolFactoryDebug := thrift.NewTDebugProtocolFactoryWithLogger(protocolFactoryBinary, "", thrift.StdLogger(log.Default()))
transport := thrift.NewTSocketConf(net.JoinHostPort(HOST, PORT), nil)
useTransport, err := transportFactory.GetTransport(transport)
if err != nil {
log.Fatal(err)
}
client := trino.NewTrinoThriftServiceClientFactory(useTransport, protocolFactoryDebug)
if err := transport.Open(); err != nil {
fmt.Fprintln(os.Stderr, "Error opening socket to "+HOST+":"+PORT, " ", err)
os.Exit(1)
}
defer transport.Close()
fmt.Println(client.TrinoListSchemaNames(context.Background()))
}