summaryrefslogtreecommitdiff
path: root/container/plugins.go
blob: 4aeecb873b75cc885efd042a14e04794f9722d7c (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
package container

import (
	cache "github.com/darkweak/souin/plugins/roadrunner"
	"github.com/roadrunner-server/amqp/v3"
	"github.com/roadrunner-server/beanstalk/v3"
	"github.com/roadrunner-server/gzip/v3"
	httpPlugin "github.com/roadrunner-server/http/v3"
	"github.com/roadrunner-server/informer/v3"
	"github.com/roadrunner-server/jobs/v3"
	"github.com/roadrunner-server/kafka/v3"
	"github.com/roadrunner-server/logger/v3"
	"github.com/roadrunner-server/metrics/v3"
	"github.com/roadrunner-server/nats/v3"
	"github.com/roadrunner-server/reload/v3"
	"github.com/roadrunner-server/resetter/v3"
	rpcPlugin "github.com/roadrunner-server/rpc/v3"
	"github.com/roadrunner-server/server/v3"
	"github.com/roadrunner-server/service/v3"
	"github.com/roadrunner-server/sqs/v3"
	rrt "github.com/temporalio/roadrunner-temporal/v2"
)

// Plugins returns active plugins for the endure container. Feel free to add or remove any plugins.
func Plugins() []any { //nolint:funlen
	return []any{
		// 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{},
		// new in 2.11
		&kafka.Plugin{},
		//// =========
		//
		// http server plugin with middleware
		&httpPlugin.Plugin{},
		//&static.Plugin{},
		//&headers.Plugin{},
		//&status.Plugin{},
		&gzip.Plugin{},
		//&prometheus.Plugin{},
		// third-party--
		&cache.Plugin{},
		// --
		//&send.Plugin{},
		//&proxyIP.Plugin{},
		//&rrOtel.Plugin{},
		// --
		//&fileserver.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{},
	}
}