mirror of
https://github.com/mudler/LocalAI.git
synced 2026-04-01 13:42:20 -04:00
* feat: add distributed mode (experimental) Signed-off-by: Ettore Di Giacinto <mudler@localai.io> * fix data races, mutexes, transactions Signed-off-by: Ettore Di Giacinto <mudler@localai.io> * refactorings Signed-off-by: Ettore Di Giacinto <mudler@localai.io> * fixups Signed-off-by: Ettore Di Giacinto <mudler@localai.io> * fix events and tool stream in agent chat Signed-off-by: Ettore Di Giacinto <mudler@localai.io> * use ginkgo Signed-off-by: Ettore Di Giacinto <mudler@localai.io> * refactoring and consolidation Signed-off-by: Ettore Di Giacinto <mudler@localai.io> * refactoring and consolidation Signed-off-by: Ettore Di Giacinto <mudler@localai.io> * refactoring and consolidation Signed-off-by: Ettore Di Giacinto <mudler@localai.io> * refactoring and consolidation Signed-off-by: Ettore Di Giacinto <mudler@localai.io> * refactoring and consolidation Signed-off-by: Ettore Di Giacinto <mudler@localai.io> * refactoring and consolidation Signed-off-by: Ettore Di Giacinto <mudler@localai.io> * refactoring and consolidation Signed-off-by: Ettore Di Giacinto <mudler@localai.io> * refactoring and consolidation Signed-off-by: Ettore Di Giacinto <mudler@localai.io> * fix(cron): compute correctly time boundaries avoiding re-triggering Signed-off-by: Ettore Di Giacinto <mudler@localai.io> * enhancements, refactorings Signed-off-by: Ettore Di Giacinto <mudler@localai.io> * do not flood of healthy checks Signed-off-by: Ettore Di Giacinto <mudler@localai.io> * do not list obvious backends as text backends Signed-off-by: Ettore Di Giacinto <mudler@localai.io> * tests fixups Signed-off-by: Ettore Di Giacinto <mudler@localai.io> * refactoring and consolidation Signed-off-by: Ettore Di Giacinto <mudler@localai.io> * Drop redundant healthcheck Signed-off-by: Ettore Di Giacinto <mudler@localai.io> * enhancements, refactorings Signed-off-by: Ettore Di Giacinto <mudler@localai.io> --------- Signed-off-by: Ettore Di Giacinto <mudler@localai.io>
28 lines
984 B
Go
28 lines
984 B
Go
package messaging
|
|
|
|
import "time"
|
|
|
|
// Publisher publishes JSON-encoded messages to NATS subjects.
|
|
type Publisher interface {
|
|
Publish(subject string, data any) error
|
|
}
|
|
|
|
// Subscription represents a NATS subscription that can be unsubscribed.
|
|
type Subscription interface {
|
|
Unsubscribe() error
|
|
}
|
|
|
|
// MessagingClient is the full interface for NATS messaging operations.
|
|
// Consumers should depend on this interface rather than the concrete Client
|
|
// for testability.
|
|
type MessagingClient interface {
|
|
Publisher
|
|
Subscribe(subject string, handler func([]byte)) (Subscription, error)
|
|
QueueSubscribe(subject, queue string, handler func([]byte)) (Subscription, error)
|
|
QueueSubscribeReply(subject, queue string, handler func(data []byte, reply func([]byte))) (Subscription, error)
|
|
SubscribeReply(subject string, handler func(data []byte, reply func([]byte))) (Subscription, error)
|
|
Request(subject string, data []byte, timeout time.Duration) ([]byte, error)
|
|
IsConnected() bool
|
|
Close()
|
|
}
|