
samber/do
Developer toolsЭта страница переведена автоматически. Технические детали смотрите в оригинале. Открыть оригинал
⚙️ Набор инструментов для инъекции зависимостей, основанный на Go 1.18+ Generics.
Обзор
Эта библиотека реализует шаблон проектирования Dependency Injection. Возможно, он заменит фантастический пакет uber/dig. samber/do использует генерики Go 1.18+ и, следовательно, предлагает безопасный для типов API. - samber/ro: Реактивное программирование для Go: декларативный и композитируемый API для событийно-ориентированных приложений - samber/lo: Библиотека Go в стиле Lodash на базе генериков Go 1.18+ - samber/mo: монады на основе Go 1.18+ generics (опция, результат, или...) - samber/cc-skills-golang: AI Agent Skills для Golang 💖 Спонсор: DBOS — Библиотека оркестрации прочных рабочих процессов для Go Мне очень нравится такая утилитная библиотека. Это название — сумма DI и Go, и ни один пакет Go не использует это имя.
Обзор (машинный перевод)
** ⚙️ Набор инструментов для инъекции зависимостей на базе Go 1.18+ Generics.**
Эта библиотека реализует шаблон проектирования Dependency Injection. Возможно, он заменит фантастический пакет [uber/dig. samber/do использует генерики Go 1.18+ и, следовательно, предлагает безопасный для типов API.
См. также:
- samber/ro: Реактивное программирование для Go: декларативный и компоноваемый API для приложений, управляемых событиями
- samber/lo: Библиотека Go в стиле Lodash, основанная на Go 1.18+ Generics
- samber/mo: монады, основанные на генериках Go 1.18+ (опция, результат, либо другой…)
- samber/cc-skills-golang: Навыки агента ИИ для Golang
💖 Спонсоры:
DBOS — надёжная библиотека оркестрации рабочих процессов для Go
Почему это имя?
Мне очень нравится короткое название для такой утилитной библиотеки. Это имя — сумма DI и Go, и ни один пакет Go не использует это имя.
💡 Особенности
- ** 📒 Регистрация службы**
- Регистр по типу
- Регистрируйтесь по имени
- Регистрация нескольких сервисов из пакета одновременно
- ** 🪃 Призыв к служению**
- Охотная загрузка
- Ленивые загрузки
- Переходная нагрузка
- Вызов на основе тегов
- Круговое обнаружение зависимостей
- ** 🧙 ♂️ Псевдониминг сервиса**
- Неявное (предоставить инструкцию, вызвать интерфейс)
Эта страница переведена автоматически. Технические детали смотрите в оригинале.
README
Показан фрагмент оригинального README. Открыть оригинал.
do - Dependency Injection
⚙️ A dependency injection toolkit based on Go 1.18+ Generics.
This library implements the Dependency Injection design pattern. It may replace the fantastic uber/dig package. samber/do uses Go 1.18+ generics and therefore offers a type‑safe API.
See also:
- samber/ro: Reactive Programming for Go: declarative and composable API for event-driven applications
- samber/lo: A Lodash-style Go library based on Go 1.18+ Generics
- samber/mo: Monads based on Go 1.18+ Generics (Option, Result, Either…)
- samber/cc-skills-golang: AI Agent Skills for Golang
Why this name?
I love the short name for such a utility library. This name is the sum of DI and Go and no Go package uses this name.
💡 Features
- 📒 Service registration
- Register by type
- Register by name
- Register multiple services from a package at once
- 🪃 Service invocation
- Eager loading
- Lazy loading
- Transient loading
- Tag-based invocation
- Circular dependency detection
- 🧙♂️ Service aliasing
- Implicit (provide struct, invoke interface)
- Explicit (provide struct, bind interface, invoke interface)
- 🔁 Service lifecycle
- Health check
- Graceful unload (shutdown)
- Dependency-aware parallel shutdown
- Lifecycle hooks
- 📦 Scope (a.k.a module) tree
- Visibility control
- Dependency grouping
- 📤 Container
- Dependency graph resolution and visualization
- Default container
- Container cloning
- Service override
- 🧪 Debugging & introspection
- Explain APIs: scope tree and service dependencies
- Web UI & HTTP middleware (std, Gin, Fiber, Echo, Chi)
- 🌈 Lightweight, no dependencies
- 🔅 No code generation
Рекомендуемые инструменты
Попробуйте другой запрос или уберите фильтр.
Установка
npx skillfish add samber/do