Third-party software and licences¶
HD is proprietary software from FermiHDI Limited. It is built on open-source components, and this page lists the ones that ship to you: what each is, its licence, and where HD uses it. It is written for procurement, legal and security reviews, so it names the components exactly, including the asynchronous framework the HD engine is built on.
What the licences require of you¶
Nothing beyond keeping the notices. Every component HD links into its own binaries is under a permissive licence (Apache-2.0, MIT, BSD, ISC, Zlib, BSL-1.0 or curl), which asks for attribution and, for Apache-2.0, the NOTICE text; none of them requires HD's own source to be published. The copyleft components are kept at arm's length:
- libnuma and libusb (LGPL-2.1) are linked dynamically, so they can be replaced independently of HD, as the LGPL requires.
- Pebble (GPL-3.0) is the service manager inside each Rock image: a separate program HD runs services under, not code HD is built from.
- BusyBox (GPL-2.0) is in the
-symbolsimages, which carry symbol files for crash symbolication, and the Kubernetes chart runs the publicbusyboximage as the storage node'sinit-storageinit container, which prepares the storage file before the node starts. In both it is an unmodified, separate program; its source is available from the BusyBox project. - Components offered under a choice of licences (jitterentropy, liburing, zstd, Eclipse Paho) are used under the permissive option.
The source of every GPL and LGPL component is available from its upstream project and, for packages taken from Ubuntu, from the Ubuntu archive; FermiHDI supplies it on request.
Each image also carries the licence texts of the operating-system packages it contains, under /usr/share/doc.
Native components (C and C++)¶
The engine roles (SCC, storage node, ingester and filter node), the SDK and the crash vault are built from these. The last column says how the licence was confirmed: from the licence file or the Debian/Ubuntu package metadata in the image the component is built in, or from the component's published upstream licence where it is built from source.
| Component | Licence | Used in | Confirmed from |
|---|---|---|---|
| The HD engine's asynchronous I/O framework (Seastar) | Apache-2.0 | SCC, storage node, ingester, filter node, SDK | upstream licence |
| DPDK (Data Plane Development Kit) | BSD-3-Clause | SCC, storage node, ingester, filter node, SDK | upstream licence (user-space libraries only) |
| SPDK (Storage Performance Development Kit) | BSD-3-Clause | Storage node | upstream licence |
| Intel ISA-L | BSD-3-Clause | SCC, storage node | upstream licence |
| Apache Arrow and Parquet | Apache-2.0 | Every engine role, SDK, ingester | licence file in the build image |
| DuckDB | MIT | SDK and the query services built on it | upstream licence |
| gRPC | Apache-2.0 | Every engine role, SDK | upstream licence |
| Protocol Buffers | BSD-3-Clause | Every engine role, SDK | package metadata |
| Abseil | Apache-2.0 | Every engine role, SDK | package metadata |
| OpenTelemetry C++ | Apache-2.0 | Every engine role | upstream licence |
| sentry-native | MIT | SCC, storage node, ingester, filter node (crash reporting) | upstream licence |
| Crashpad | Apache-2.0 | SCC, storage node, ingester (crash reporting) | upstream licence |
| OpenSSL 3 | Apache-2.0 | Every component | package metadata |
| Boost (program_options, thread) | BSL-1.0 | Every engine role | package metadata |
| {fmt} | MIT | Every engine role | upstream licence |
| yaml-cpp | MIT | Every engine role | package metadata |
| hwloc | BSD-3-Clause | Every engine role | package metadata |
| c-ares | MIT | Every engine role | upstream licence |
| libcurl | curl | Every engine role | package metadata |
| NORM (NACK-Oriented Reliable Multicast) | BSD-3-Clause | Every engine role | package metadata |
| jitterentropy | BSD-3-Clause (dual-licensed; used under BSD) | Every engine role (through OpenSSL) | upstream licence |
| liburing | MIT (dual-licensed; used under MIT) | SCC, storage node, SDK | upstream licence |
| libnuma (numactl) | LGPL-2.1-only | SCC, storage node (dynamically linked) | upstream licence |
| libusb 1.0 | LGPL-2.1-or-later | SCC and filter node hash offload (dynamically linked, optional) | package metadata |
| RE2 | BSD-3-Clause | Every engine role | upstream licence |
| simdjson | Apache-2.0 | SCC, storage node, filter node | upstream licence |
| glaze | MIT | Ingester | upstream licence |
| nlohmann/json | MIT | Every engine role, ingester, SDK | package metadata |
| xxHash | BSD-2-Clause | SCC, storage node, filter node | package metadata |
| USearch | Apache-2.0 | SDK | upstream licence |
| AdaptiveCpp | BSD-2-Clause | SCC, storage node, filter node, SDK (GPU filtering, optional) | upstream licence |
| LLVM (opt, llc, lld) | Apache-2.0 WITH LLVM-exception | SCC, storage node (filter kernel compilation) | upstream licence |
| Apache Avro C | Apache-2.0 | Ingester | upstream licence |
| librdkafka | BSD-2-Clause | Ingester | upstream licence |
| rabbitmq-c | MIT | Ingester | upstream licence |
| Eclipse Paho MQTT C | EPL-2.0 OR BSD-3-Clause (used under BSD) | Ingester | upstream licence |
| libxml2 | MIT | Ingester (XML files) | package metadata |
| zlib | Zlib | Every component | package metadata |
| zstd | BSD-3-Clause (dual-licensed; used under BSD) | Arrow and Parquet codecs | package metadata |
| LZ4 | BSD-2-Clause | Arrow and Parquet codecs | package metadata |
| Snappy | BSD-3-Clause | Arrow and Parquet codecs | package metadata |
| Brotli | MIT | Arrow and Parquet codecs | package metadata |
| utf8proc | MIT | Arrow | package metadata |
| Apache Thrift | Apache-2.0 | Parquet, SDK | upstream licence |
| pybind11 | BSD-3-Clause | SDK (Python binding) | upstream licence |
| minidump-stackwalk (rust-minidump) | MIT | Crash vault | upstream licence |
Runtimes and base images¶
| Component | Licence | Used in | Confirmed from |
|---|---|---|---|
| Ubuntu 26.04 LTS base | Various; each package's licence ships in the image under /usr/share/doc | Every -ub2604 image and every Rock |
distribution |
| Pebble | GPL-3.0-only | Every Rock image (the service manager, a separate program) | upstream licence |
| Go runtime and standard library | BSD-3-Clause | DMS, Proxy, SQL, GraphQL, MCP services, front door | upstream licence |
| Node.js | MIT | DMS WebUX, Data Explore | upstream licence |
| OpenTelemetry Collector Contrib | Apache-2.0 | The DMS-managed OpenTelemetry collector image | upstream licence |
| BusyBox | GPL-2.0-only | The -symbols images, and the storage node's init-storage init container in the Kubernetes chart |
upstream licence |
Go modules¶
The Go services (DMS, Proxy, SQL server, GraphQL services, MCP server and the service-account front door) compile in 129 third-party modules. Each licence below was read from the module's own licence file: 59 MIT, 45 Apache-2.0, 21 BSD-3-Clause, 3 BSD-2-Clause, 1 ISC.
| Module | Licence | Used in |
|---|---|---|
| github.com/99designs/gqlgen | MIT | IP Flow GraphQL service |
| github.com/agnivade/levenshtein | MIT | DMS, IP Flow GraphQL service, Proxy |
| github.com/andybalholm/brotli | MIT | GraphQL service, MCP server |
| github.com/apache/arrow/go/v12 | Apache-2.0 | GraphQL service, MCP server |
| github.com/apache/arrow/go/v14 | Apache-2.0 | IP Flow GraphQL service, SQL server |
| github.com/apache/thrift | Apache-2.0 | GraphQL service, MCP server |
| github.com/bahlo/generic-list-go | BSD-3-Clause | MCP server |
| github.com/beorn7/perks | MIT | DMS, GraphQL service, MCP server, Proxy, SQL server |
| github.com/buger/jsonparser | MIT | MCP server |
| github.com/bytedance/sonic | Apache-2.0 | MCP server |
| github.com/cenkalti/backoff/v5 | MIT | DMS, IP Flow GraphQL service, Proxy |
| github.com/cespare/xxhash/v2 | MIT | DMS, GraphQL service, IP Flow GraphQL service, MCP server, Proxy, SQL server |
| github.com/chenzhuoyu/base64x | Apache-2.0 | MCP server |
| github.com/decred/dcrd/dcrec/secp256k1/v4 | ISC | DMS, Proxy |
| github.com/felixge/httpsnoop | MIT | Proxy |
| github.com/fsnotify/fsnotify | BSD-3-Clause | GraphQL service, IP Flow GraphQL service, MCP server |
| github.com/gabriel-vasile/mimetype | MIT | MCP server |
| github.com/gin-contrib/sse | MIT | MCP server |
| github.com/gin-gonic/gin | MIT | MCP server |
| github.com/go-jose/go-jose/v4 | Apache-2.0 | DMS |
| github.com/go-logr/logr | Apache-2.0 | DMS, IP Flow GraphQL service, Proxy |
| github.com/go-logr/stdr | Apache-2.0 | DMS, IP Flow GraphQL service, Proxy |
| github.com/go-playground/locales | MIT | MCP server |
| github.com/go-playground/universal-translator | MIT | MCP server |
| github.com/go-playground/validator/v10 | MIT | MCP server |
| github.com/go-viper/mapstructure/v2 | MIT | IP Flow GraphQL service |
| github.com/gobwas/glob | MIT | DMS, Proxy |
| github.com/goccy/go-json | MIT | DMS, GraphQL service, IP Flow GraphQL service, MCP server, Proxy, SQL server |
| github.com/goccy/go-yaml | MIT | IP Flow GraphQL service |
| github.com/golang/snappy | BSD-3-Clause | GraphQL service, MCP server |
| github.com/google/flatbuffers | Apache-2.0 | GraphQL service, IP Flow GraphQL service, MCP server, SQL server |
| github.com/google/uuid | BSD-3-Clause | DMS, IP Flow GraphQL service, Proxy |
| github.com/gorilla/websocket | BSD-3-Clause | DMS, IP Flow GraphQL service |
| github.com/graphql-go/graphql | MIT | GraphQL service |
| github.com/grpc-ecosystem/grpc-gateway/v2 | BSD-3-Clause | DMS, IP Flow GraphQL service, Proxy |
| github.com/hashicorp/golang-lru/v2 | MIT | IP Flow GraphQL service |
| github.com/invopop/jsonschema | MIT | MCP server |
| github.com/jackc/pgpassfile | MIT | SQL server |
| github.com/jackc/pgservicefile | MIT | SQL server |
| github.com/jackc/pgx/v5 | MIT | SQL server |
| github.com/json-iterator/go | MIT | MCP server |
| github.com/klauspost/asmfmt | MIT | GraphQL service, MCP server |
| github.com/klauspost/compress | Apache-2.0 | GraphQL service, IP Flow GraphQL service, MCP server, SQL server |
| github.com/klauspost/cpuid/v2 | MIT | GraphQL service, IP Flow GraphQL service, MCP server, SQL server |
| github.com/kr/text | MIT | GraphQL service, MCP server |
| github.com/leodido/go-urn | MIT | MCP server |
| github.com/lestrrat-go/blackmagic | MIT | DMS, Proxy |
| github.com/lestrrat-go/dsig | MIT | DMS, Proxy |
| github.com/lestrrat-go/dsig-secp256k1 | MIT | DMS, Proxy |
| github.com/lestrrat-go/httpcc | MIT | DMS, Proxy |
| github.com/lestrrat-go/httprc/v3 | MIT | DMS, Proxy |
| github.com/lestrrat-go/jwx/v3 | MIT | DMS, Proxy |
| github.com/lestrrat-go/option/v2 | MIT | DMS, Proxy |
| github.com/mailru/easyjson | MIT | MCP server |
| github.com/mattn/go-isatty | MIT | MCP server |
| github.com/metoro-io/mcp-golang | MIT | MCP server |
| github.com/minio/asm2plan9s | Apache-2.0 | GraphQL service, MCP server |
| github.com/minio/c2goasm | Apache-2.0 | GraphQL service, MCP server |
| github.com/modern-go/concurrent | Apache-2.0 | MCP server |
| github.com/modern-go/reflect2 | Apache-2.0 | MCP server |
| github.com/munnerz/goautoneg | BSD-3-Clause | DMS, GraphQL service, MCP server, Proxy, SQL server |
| github.com/open-policy-agent/opa | Apache-2.0 | DMS, Proxy |
| github.com/open-telemetry/opamp-go | Apache-2.0 | DMS |
| github.com/pelletier/go-toml/v2 | MIT | IP Flow GraphQL service, MCP server |
| github.com/pierrec/lz4/v4 | BSD-3-Clause | GraphQL service, IP Flow GraphQL service, MCP server, SQL server |
| github.com/pkg/errors | BSD-2-Clause | MCP server |
| github.com/prometheus/client_golang | Apache-2.0 | DMS, GraphQL service, MCP server, Proxy, SQL server |
| github.com/prometheus/client_model | Apache-2.0 | DMS, GraphQL service, MCP server, Proxy, SQL server |
| github.com/prometheus/common | Apache-2.0 | DMS, GraphQL service, MCP server, Proxy, SQL server |
| github.com/prometheus/procfs | Apache-2.0 | DMS, GraphQL service, MCP server, Proxy, SQL server |
| github.com/ravilushqa/otelgqlgen | Apache-2.0 | IP Flow GraphQL service |
| github.com/rcrowley/go-metrics | BSD-2-Clause | DMS, Proxy |
| github.com/sagikazarmark/locafero | MIT | IP Flow GraphQL service |
| github.com/santhosh-tekuri/jsonschema/v5 | Apache-2.0 | IP Flow GraphQL service, SQL server |
| github.com/segmentio/asm | MIT | DMS, Proxy |
| github.com/sirupsen/logrus | MIT | DMS, Proxy |
| github.com/sosodev/duration | MIT | IP Flow GraphQL service |
| github.com/sourcegraph/conc | MIT | IP Flow GraphQL service |
| github.com/spf13/afero | Apache-2.0 | IP Flow GraphQL service |
| github.com/spf13/cast | MIT | IP Flow GraphQL service |
| github.com/spf13/pflag | BSD-3-Clause | IP Flow GraphQL service |
| github.com/spf13/viper | MIT | IP Flow GraphQL service |
| github.com/subosito/gotenv | MIT | IP Flow GraphQL service |
| github.com/tchap/go-patricia/v2 | MIT | DMS, Proxy |
| github.com/tidwall/gjson | MIT | MCP server |
| github.com/tidwall/match | MIT | MCP server |
| github.com/tidwall/pretty | MIT | MCP server |
| github.com/tidwall/sjson | MIT | MCP server |
| github.com/twitchyliquid64/golang-asm | BSD-3-Clause | MCP server |
| github.com/ugorji/go/codec | MIT | MCP server |
| github.com/urfave/cli/v3 | MIT | IP Flow GraphQL service |
| github.com/valyala/fastjson | MIT | DMS, Proxy |
| github.com/vektah/gqlparser/v2 | MIT | DMS, IP Flow GraphQL service, Proxy |
| github.com/wk8/go-ordered-map/v2 | Apache-2.0 | MCP server |
| github.com/xeipuuv/gojsonpointer | Apache-2.0 | DMS, Proxy |
| github.com/xeipuuv/gojsonreference | Apache-2.0 | DMS, Proxy |
| github.com/xeipuuv/gojsonschema | Apache-2.0 | DMS, Proxy |
| github.com/yashtewari/glob-intersection | Apache-2.0 | DMS, Proxy |
| github.com/zeebo/xxh3 | BSD-2-Clause | GraphQL service, IP Flow GraphQL service, MCP server, SQL server |
| go.opentelemetry.io/auto/sdk | Apache-2.0 | DMS, IP Flow GraphQL service, Proxy |
| go.opentelemetry.io/contrib | Apache-2.0 | IP Flow GraphQL service |
| go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp | Apache-2.0 | Proxy |
| go.opentelemetry.io/otel | Apache-2.0 | DMS, IP Flow GraphQL service, Proxy |
| go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp | Apache-2.0 | IP Flow GraphQL service |
| go.opentelemetry.io/otel/exporters/otlp/otlptrace | Apache-2.0 | DMS, IP Flow GraphQL service, Proxy |
| go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp | Apache-2.0 | DMS, IP Flow GraphQL service, Proxy |
| go.opentelemetry.io/otel/metric | Apache-2.0 | DMS, IP Flow GraphQL service, Proxy |
| go.opentelemetry.io/otel/sdk | Apache-2.0 | DMS, IP Flow GraphQL service, Proxy |
| go.opentelemetry.io/otel/sdk/metric | Apache-2.0 | IP Flow GraphQL service |
| go.opentelemetry.io/otel/trace | Apache-2.0 | DMS, IP Flow GraphQL service, Proxy |
| go.opentelemetry.io/proto/otlp | Apache-2.0 | DMS, IP Flow GraphQL service, Proxy |
| go.yaml.in/yaml/v2 | MIT | DMS, GraphQL service, MCP server, Proxy |
| go.yaml.in/yaml/v3 | Apache-2.0 | DMS, IP Flow GraphQL service, Proxy |
| golang.org/x/arch | BSD-3-Clause | MCP server |
| golang.org/x/crypto | BSD-3-Clause | DMS, MCP server, Proxy |
| golang.org/x/mod | BSD-3-Clause | GraphQL service, IP Flow GraphQL service, MCP server, SQL server |
| golang.org/x/net | BSD-3-Clause | DMS, IP Flow GraphQL service, MCP server, Proxy, SQL server |
| golang.org/x/sync | BSD-3-Clause | DMS, IP Flow GraphQL service, MCP server, Proxy, SQL server |
| golang.org/x/sys | BSD-3-Clause | DMS, GraphQL service, IP Flow GraphQL service, MCP server, Proxy, SQL server |
| golang.org/x/telemetry | BSD-3-Clause | IP Flow GraphQL service, MCP server, SQL server |
| golang.org/x/text | BSD-3-Clause | DMS, IP Flow GraphQL service, MCP server, Proxy, SQL server |
| golang.org/x/tools | BSD-3-Clause | GraphQL service, IP Flow GraphQL service, MCP server, SQL server |
| golang.org/x/xerrors | BSD-3-Clause | GraphQL service, IP Flow GraphQL service, MCP server, SQL server |
| google.golang.org/genproto/googleapis/api | Apache-2.0 | DMS, IP Flow GraphQL service, Proxy |
| google.golang.org/genproto/googleapis/rpc | Apache-2.0 | DMS, IP Flow GraphQL service, Proxy, SQL server |
| google.golang.org/grpc | Apache-2.0 | DMS, IP Flow GraphQL service, Proxy, SQL server |
| google.golang.org/protobuf | BSD-3-Clause | DMS, GraphQL service, IP Flow GraphQL service, MCP server, Proxy, SQL server |
| gopkg.in/yaml.v3 | Apache-2.0 | GraphQL service, MCP server |
| sigs.k8s.io/yaml | MIT | DMS, Proxy |
JavaScript packages¶
The web applications (DMS WebUX and Data Explore) and the SDK's JavaScript binding use these packages directly; their own dependencies are under the same family of permissive licences. Licences were read from each package's lock-file entry.
| Package | Licence | Used in |
|---|---|---|
| @astrojs/node | MIT | DMS WebUX, Data Explore |
| @astrojs/react | MIT | Data Explore |
| @astrojs/vue | MIT | DMS WebUX, Data Explore |
| @fortawesome/fontawesome-svg-core | MIT | Data Explore |
| @fortawesome/free-solid-svg-icons | CC-BY-4.0 AND MIT | Data Explore |
| @fortawesome/vue-fontawesome | MIT | Data Explore |
| @nanostores/react | MIT | Data Explore |
| @nanostores/vue | MIT | Data Explore |
| @opentelemetry/api | Apache-2.0 | DMS WebUX |
| @opentelemetry/auto-instrumentations-node | Apache-2.0 | DMS WebUX |
| @opentelemetry/context-zone | Apache-2.0 | DMS WebUX |
| @opentelemetry/exporter-metrics-otlp-grpc | Apache-2.0 | DMS WebUX |
| @opentelemetry/exporter-metrics-otlp-http | Apache-2.0 | DMS WebUX |
| @opentelemetry/exporter-trace-otlp-grpc | Apache-2.0 | DMS WebUX |
| @opentelemetry/exporter-trace-otlp-http | Apache-2.0 | DMS WebUX |
| @opentelemetry/instrumentation | Apache-2.0 | DMS WebUX |
| @opentelemetry/instrumentation-document-load | Apache-2.0 | DMS WebUX |
| @opentelemetry/instrumentation-fetch | Apache-2.0 | DMS WebUX |
| @opentelemetry/resources | Apache-2.0 | DMS WebUX |
| @opentelemetry/sdk-metrics | Apache-2.0 | DMS WebUX |
| @opentelemetry/sdk-node | Apache-2.0 | DMS WebUX |
| @opentelemetry/sdk-trace-base | Apache-2.0 | DMS WebUX |
| @opentelemetry/sdk-trace-web | Apache-2.0 | DMS WebUX |
| @opentelemetry/semantic-conventions | Apache-2.0 | DMS WebUX |
| @sentry/astro | MIT | Data Explore |
| @sentry/node | MIT | Data Explore |
| apache-arrow | Apache-2.0 | Data Explore |
| astro | MIT | DMS WebUX, Data Explore |
| chart.js | MIT | DMS WebUX |
| chess.js | BSD-2-Clause | Data Explore |
| dom-to-image-more | MIT | Data Explore |
| echarts | Apache-2.0 | Data Explore |
| html2canvas | MIT | Data Explore |
| jspdf | MIT | Data Explore |
| mermaid | MIT | DMS WebUX, Data Explore |
| nanostores | MIT | Data Explore |
| node-addon-api | MIT | Data Explore, SDK (JavaScript binding) |
| react | MIT | Data Explore |
| react-dom | MIT | Data Explore |
| react-querybuilder | MIT | Data Explore |
| vue | MIT | DMS WebUX, Data Explore |
| vue-chartjs | MIT | DMS WebUX |
Font Awesome's free icons are CC-BY-4.0 (the icons) and MIT (the code); the attribution is kept in the Data Explore bundle.
Python packages¶
The DMS command-line tool and the SDK's Python binding use these.
| Package | Licence |
|---|---|
| httpx | BSD-3-Clause |
| httpx-sse | MIT |
| rich | MIT |
| typer | MIT |
| pyarrow | Apache-2.0 |
Keeping this list current¶
The list is regenerated for every release from the dependency manifests of the code that ships (Go module vendor trees, npm lock files, the native build definitions and the images' package databases). Dependency updates arrive through automated update requests and are scanned for known vulnerabilities and licence changes before they merge; see Security and development practices.