
A Go package for running an embedded NATS server.
|
package main |
|
|
|
import ( |
|
"log/slog" |
|
"os" |
|
"os/signal" |
|
"syscall" |
|
"time" |
|
|
|
natsserver "github.com/nats-io/nats-server/v2/server" |
|
"github.com/osapi-io/nats-server/pkg/server" |
|
) |
|
|
|
func main() { |
|
debug := true |
|
trace := debug |
|
logger := slog.Default() |
|
|
|
opts := &server.Options{ |
|
Options: &natsserver.Options{ |
|
JetStream: true, |
|
Debug: debug, |
|
Trace: trace, |
|
StoreDir: ".nats/jetstream/", |
|
NoSigs: true, |
|
NoLog: false, |
|
}, |
|
ReadyTimeout: 5 * time.Second, |
|
} |
|
|
|
s := server.New(logger, opts) |
|
err := s.Start() |
|
if err != nil { |
|
logger.Error("failed to start server", "error", err) |
|
os.Exit(1) |
|
} |
|
|
|
quit := make(chan os.Signal, 1) |
|
signal.Notify(quit, os.Interrupt, syscall.SIGTERM) |
|
<-quit |
|
|
|
s.Stop() |
|
} |
See the examples section for additional use cases.
Enable Remote Taskfile feature.
export TASK_X_REMOTE_TASKFILES=1
Install dependencies:
To execute tests:
Auto format code:
List helpful targets:
The MIT License.