summaryrefslogtreecommitdiff
path: root/container/plugins.go
blob: 69b87ee30006b9e1ae3d1aa74fda87116accf62c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
package container

import (
	cache "github.com/darkweak/souin/plugins/roadrunner"
	"github.com/roadrunner-server/amqp/v2"
	"github.com/roadrunner-server/beanstalk/v2"
	"github.com/roadrunner-server/boltdb/v2"
	"github.com/roadrunner-server/broadcast/v2"
	"github.com/roadrunner-server/fileserver/v2"
	grpcPlugin "github.com/roadrunner-server/grpc/v2"
	"github.com/roadrunner-server/gzip/v2"
	"github.com/roadrunner-server/headers/v2"
	httpPlugin "github.com/roadrunner-server/http/v2"
	"github.com/roadrunner-server/informer/v2"
	"github.com/roadrunner-server/jobs/v2"
	"github.com/roadrunner-server/kafka/v2"
	"github.com/roadrunner-server/logger/v2"
	"github.com/roadrunner-server/memory/v2"
	"github.com/roadrunner-server/metrics/v2"
	"github.com/roadrunner-server/nats/v2"
	rrOtel "github.com/roadrunner-server/otel/v2"
	"github.com/roadrunner-server/prometheus/v2"
	proxyIP "github.com/roadrunner-server/proxy_ip_parser/v2"
	"github.com/roadrunner-server/redis/v2"
	"github.com/roadrunner-server/reload/v2"
	"github.com/roadrunner-server/resetter/v2"
	rpcPlugin "github.com/roadrunner-server/rpc/v2"
	"github.com/roadrunner-server/send/v2"
	"github.com/roadrunner-server/server/v2"
	"github.com/roadrunner-server/service/v2"
	"github.com/roadrunner-server/sqs/v2"
	"github.com/roadrunner-server/static/v2"
	"github.com/roadrunner-server/status/v2"
	"github.com/roadrunner-server/websockets/v2"

	"github.com/roadrunner-server/kv/v2"
	"github.com/roadrunner-server/memcached/v2"
	"github.com/roadrunner-server/tcp/v2"
	rrt "github.com/temporalio/roadrunner-temporal"
)

// Plugins returns active plugins for the endure container. Feel free to add or remove any plugins.
func Plugins() []interface{} { //nolint:funlen
	return []interface{}{
		// bundled
		// informer plugin (./rr workers, ./rr workers -i)
		&informer.Plugin{},
		// resetter plugin (./rr reset)
		&resetter.Plugin{},

		// logger plugin
		&logger.Plugin{},
		// metrics plugin
		&metrics.Plugin{},
		// reload plugin
		&reload.Plugin{},
		// rpc plugin (workers, reset)
		&rpcPlugin.Plugin{},
		// server plugin (NewWorker, NewWorkerPool)
		&server.Plugin{},
		// service plugin
		&service.Plugin{},

		// ========= JOBS bundle
		&jobs.Plugin{},
		&amqp.Plugin{},
		&sqs.Plugin{},
		&nats.Plugin{},
		&beanstalk.Plugin{},
		&kafka.Plugin{},
		// =========

		// http server plugin with middleware
		&httpPlugin.Plugin{},
		&static.Plugin{},
		&headers.Plugin{},
		&status.Plugin{},
		&gzip.Plugin{},
		&prometheus.Plugin{},
		&cache.Plugin{},
		&send.Plugin{},
		&proxyIP.Plugin{},
		&fileserver.Plugin{},
		&rrOtel.Plugin{},
		// ===================

		&grpcPlugin.Plugin{},
		// kv + ws + jobs plugin
		&memory.Plugin{},
		// KV + Jobs
		&boltdb.Plugin{},
		// broadcast via memory or redis
		// used in conjunction with Websockets, memory and redis plugins
		&broadcast.Plugin{},
		// ======== websockets broadcast bundle
		&websockets.Plugin{},
		&redis.Plugin{},
		// =========

		// ============== KV
		&kv.Plugin{},
		&memcached.Plugin{},
		// ==============

		// raw TCP connections handling
		&tcp.Plugin{},

		// temporal plugins
		&rrt.Plugin{},
	}
}