MCPcopy
hub / github.com/krakend/krakend-ce

github.com/krakend/krakend-ce @v2.13.7 sqlite

repository ↗ · DeepWiki ↗ · release v2.13.7 ↗
133 symbols 337 edges 13 files 44 documented · 33%
README

Krakend logo

KrakenD

FOSSA Status

KrakenD is an extensible, ultra-high performance API Gateway that helps you effortlessly adopt microservices and secure communications. KrakenD is easy to operate and run and scales out without a single point of failure.

KrakenD Community Edition (or KrakenD-CE) is the open-source distribution of KrakenD.

KrakenD Site | Documentation | Blog | Twitter | Downloads

Benefits

  • Easy integration of an ultra-high performance gateway.
  • Effortlessly transition to microservices and Backend For Frontend implementations.
  • True linear scalability: Thanks to its stateless design, every KrakenD node can operate independently in the cluster without any coordination or centralized persistence.
  • Low operational cost: +70K reqs/s on a single instance of regular size. Super low memory consumption with high traffic (usually under 50MB w/ +1000 concurrent). Fewer machines. Smaller machines. Lower budget.
  • Platform-agnostic. Whether you work in a Cloud-native environment (e.g., Kubernetes) or self-hosted on-premises.
  • No vendor lock-in: Reuse the best existing open-source and proprietary tools rather than having everything in the gateway (telemetry, identity providers, etc.)
  • API Lifecycle: Using GitOps and declarative configuration.
  • Decouple clients from existing services. Create new APIs without changing your existing API contracts.

Technical features

  • Content aggregation, composition, and filtering: Create views and mashups of aggregated content from your APIs.
  • Content Manipulation and format transformation: Change responses, convert transparently from XML to JSON, and vice-versa.
  • Security: Zero-trust policy, CORS, OAuth, JWT, HSTS, clickjacking protection, HPKP, MIME-Sniffing prevention, XSS protection...
  • Concurrent calls: Serve content faster than consuming backends directly.
  • SSL and HTTP2 ready
  • Throttling: Limits of usage in the router and proxy layers
  • Multi-layer rate-limiting for the end-user and between KrakenD and your services, including bursting, load balancing, and circuit breaker.
  • Telemetry and dashboards of all sorts: Datadog, Zipkin, Jaeger, Prometheus, Grafana...
  • Extensible with Go plugins, Lua scripts, Martian, or Google CEL spec.

See the website for more information.

Download

KrakenD is packaged and distributed in several formats. You don't need to clone this repo to use KrakenD unless you want to tweak and build the binary yourself.

Run

In its simplest form with the offical Docker image:

docker run -it -p "8080:8080" krakend

Now see http://localhost:8080/__health. The gateway is listening. Now CTRL-C and replace /etc/krakend/krakend.json with your first configuration.

Build

See the required Go version in the Makefile, and then:

make build

Or, if you don't have or don't want to install go, you can build it using the golang docker container:

make build_on_docker

License

FOSSA Status

Extension points exported contracts — how you extend this code

SubscriberFactoriesRegister (Interface)
SubscriberFactoriesRegister registers all the required subscriber factories from the available service discover componen [2 …
executor.go
CmdBuilder (Interface)
CmdBuilder defines an interface for building the cmd to be managed by the Runner [2 implementers]
tests/integration.go
MetricsAndTracesRegister (Interface)
MetricsAndTracesRegister registers the defined observability components and returns a metrics collector, if required. [2 …
executor.go
BackendBuilder (Interface)
BackendBuilder defines an interface for building a server as a backend for the tests [2 implementers]
tests/integration.go
PluginLoader (Interface)
PluginLoader defines the interface for the collaborator responsible of starting the plugin loaders Deprecated: Use Plugi [1 …
executor.go
GenericServer (Interface)
GenericServer defines an interface to launch a server that could be an http.Server, a different type, or a wrapper aroun
tests/integration.go
PluginLoaderWithContext (Interface)
PluginLoaderWithContext defines the interface for the collaborator responsible of starting the plugin loaders [1 implementers]
executor.go
ComposableBackendBuilder (Interface)
ComposableBackendBuilder allows us to return a more generic interface for any kind of server.
tests/integration.go

Core symbols most depended-on inside this repo

Error
called by 31
tests/integration.go
Register
called by 11
executor.go
New
called by 10
tests/integration.go
Close
called by 8
tests/integration.go
checkXForwardedFor
called by 5
tests/integration.go
NewLogger
called by 4
executor.go
Errs
called by 4
plugin.go
NewBackendFactory
called by 3
executor.go

Shape

Method 48
Function 46
Struct 21
Interface 17
FuncType 1

Languages

Go100%

Modules by API surface

tests/integration.go50 symbols
executor.go40 symbols
plugin.go16 symbols
router_engine.go6 symbols
backend_factory.go6 symbols
proxy_factory.go4 symbols
sd.go3 symbols
handler_factory.go3 symbols
tests/integration_test.go1 symbols
tests/integration_example_test.go1 symbols
encoding.go1 symbols
cmd/krakend-integration/main.go1 symbols

Dependencies from manifests, versioned

cel.dev/exprv0.25.1 · 1×
cloud.google.com/gov0.123.0 · 1×
cloud.google.com/go/auth/oauth2adaptv0.2.8 · 1×
cloud.google.com/go/compute/metadatav0.9.0 · 1×
cloud.google.com/go/kmsv1.25.0 · 1×
cloud.google.com/go/longrunningv0.8.0 · 1×
cloud.google.com/go/monitoringv1.24.3 · 1×
cloud.google.com/go/pubsubv1.50.1 · 1×
cloud.google.com/go/pubsub/v2v2.3.0 · 1×
cloud.google.com/go/tracev1.11.7 · 1×

For agents

$ claude mcp add krakend-ce \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact