Go-Flight-Server

command module
v0.0.0-...-9567623 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 11, 2025 License: Apache-2.0 Imports: 8 Imported by: 0

README

Go Flight Server

This Project is an implementation of the Apache Arrow Flight server that sends IPC streams on the gRPC format.

Compatibility

This project does not work for

General principle

This server has the purpose to send responses on request from a browser. That is why there is a proxy included in this project. The general architecture looks like this:

Class diagram

To give a better overview I have a class diagram that provides a general idea of the projects composition.

Set-up

This project is easy to set up. If you downloaded the Full Project repo you can jump directly into the start section

Database

Download the corresponding libduckdb library from here

Dataset

Download the sPlot library from here

Proxy

Because we want to need h2 as a main protocol for fast sending. install:

  • envoy
  • mkcert
brew install mkcert nss

Start

Server

 CGO_CXXFLAGS="-I$(pwd)/third_party" go run .

Proxy

envoy -c proxy/envoy.yaml

or run the run.sh script in the folder, if you want a super light-weight server.

Documentation

Overview

Server The main application of the server If you are unfamiliar with gRPC, Arrow IPC and ADBC please visit their documentation gRPC: https://grpc.io/docs/languages/go/quickstart/ Apache Arrow Flight: https://arrow.apache.org/docs/format/Flight.html IPC: https://arrow.apache.org/docs/python/ipc.html ADBC: https://arrow.apache.org/docs/format/ADBC.html Also if you have specific questions please read my own documentation for reference

Directories

Path Synopsis
internal
tests

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL