---
title: Go Compatibility Requirements
description: Datadog, the leading service for cloud-scale monitoring.
breadcrumbs: >-
  Docs > Datadog Security > App and API Protection > Enabling App and API
  Protection > Compatibility Requirements > Go Compatibility Requirements
---

# Go Compatibility Requirements

{% callout %}
# Important note for users on the following Datadog sites: app.ddog-gov.com, us2.ddog-gov.com

{% alert level="danger" %}
This product is not supported for your selected [Datadog site](https://docs.datadoghq.com/getting_started/site.md). ({% placeholder "user-datadog-site-name" /%}).
{% /alert %}

{% /callout %}

## App and API Protection capabilities{% #app-and-api-protection-capabilities %}

The following App and API Protection capabilities are supported in the Go library, for the specified tracer version:

| App and API Protection capability           | Minimum Go tracer version |
| ------------------------------------------- | ------------------------- |
| HTTP Monitoring                             | 2.1.0                     |
| gRPC Monitoring                             | 1.69.0                    |
| GraphQL Monitoring                          | 1.60.0                    |
| Exploit Prevention                          | 2.0.0                     |
| API Security                                | 2.4.0                     |
| Account Takeover Protection                 | 1.69.0                    |
| Runtime Activation                          | 1.69.0 (partial)          |
| Runtime Software Composition Analysis (SCA) | 1.53.0                    |
| Runtime Code Analysis (IAST)                | not supported             |

The minimum tracer version to get all supported App and API Protection capabilities for Go is 2.4.0. The following capabilities are not yet supported: Runtime Code Analysis (IAST). **Note**: Blocking requires enabling [Remote Configuration](https://docs.datadoghq.com/tracing/guide/remote_config.md)

### Supported deployment types{% #supported-deployment-types %}

| Deployment type | Support |
| --------------- | ------- |
| Docker          | yes     |
| Kubernetes      | yes     |
| Amazon ECS      | yes     |
| AWS Fargate     | yes     |
| AWS Lambda      | yes     |

## Language and framework compatibility{% #language-and-framework-compatibility %}

### Supported Go versions{% #supported-go-versions %}

The Datadog Go Tracing library is open source. View the [GitHub repository](https://github.com/DataDog/dd-trace-go) for more information.

The Datadog Go Tracing Library has a [version support policy](https://github.com/DataDog/dd-trace-go#support-policy) defined for Go versions. The two latest releases of Go are fully supported, while the third newest release is considered in [maintenance](https://github.com/DataDog/dd-trace-go#support-maintenance). Older versions may function, but no support is provided by default. For special requests, [contact support](https://www.datadoghq.com/support/).

You must be running Datadog Agent v5.21.1+

Starting from tracer version 1.53.0, App and API Protection capabilities do not require [CGO](https://github.com/golang/go/wiki/cgo).

## Integrations{% #integrations %}

The Go tracer includes support for the following frameworks, data stores and libraries.

The Go packages listed in this page are relevant for App and API Protection capabilities. You can also find more tracing integrations in [APM's tracing compatibility page](https://docs.datadoghq.com/tracing/compatibility_requirements/go.md).

**Note**: This documentation uses v2 of the Go tracer, which Datadog recommends for all users. If you are using v1, see the [migration guide](https://docs.datadoghq.com/tracing/trace_collection/custom_instrumentation/go/migration.md) to upgrade to v2.

**Note**: The [Go integrations documentation](https://pkg.go.dev/github.com/DataDog/dd-trace-go/v2/contrib) provides a detailed overview of the supported packages and their APIs, along with usage examples.

{% alert level="info" %}
If you don't see your library of choice listed, fill out [this short form to send details](https://forms.gle/gHrxGQMEnAobukfn7).
{% /alert %}

### Web framework compatibility{% #web-framework-compatibility %}

| Framework                                     | HTTP Monitoring | HTTP Blocking |
| --------------------------------------------- | --------------- | ------------- |
| [Gin](https://github.com/gin-gonic/gin)       | yes             | yes           |
| [Echo](https://github.com/labstack/echo)      | yes             | yes           |
| [Chi](https://github.com/go-chi/chi)          | yes             | yes           |
| [Gorilla Mux](https://github.com/gorilla/mux) | yes             | yes           |
| [Fiber](https://github.com/gofiber/fiber)     | yes             | yes           |
| [net/http](https://pkg.go.dev/net/http)       | yes             | yes           |

### Networking framework compatibility{% #networking-framework-compatibility %}

#### HTTP client{% #http-client %}

| Framework                               | Server-side Request Forgery (SSRF) |
| --------------------------------------- | ---------------------------------- |
| [net/http](https://pkg.go.dev/net/http) | yes                                |

#### gRPC{% #grpc %}

| Framework                              | gRPC Monitoring | gRPC Blocking |
| -------------------------------------- | --------------- | ------------- |
| [gRPC](https://google.golang.org/grpc) | yes             | yes           |

### Data store compatibility{% #data-store-compatibility %}

| Framework                                       | SQL Injection (SQLi) |
| ----------------------------------------------- | -------------------- |
| [database/sql](https://pkg.go.dev/database/sql) | yes                  |

### GraphQL compatibility{% #graphql-compatibility %}

| Framework                                                               | GraphQL Monitoring |
| ----------------------------------------------------------------------- | ------------------ |
| [gqlgen](https://github.com/99designs/gqlgen)                           | yes                |
| [graph-gophers/graphql-go](https://github.com/graph-gophers/graphql-go) | yes                |
| [graphql-go/graphql](https://github.com/graphql-go/graphql)             | yes                |

### Filesystem compatibility{% #filesystem-compatibility %}

| Framework                   | Local File Inclusion (LFI) |
| --------------------------- | -------------------------- |
| [os](https://pkg.go.dev/os) | yes 1                      |

1. LFI detection requires compile-time instrumentation via Orchestrion ↩︎
