SD

Эта страница переведена автоматически. Технические детали смотрите в оригинале. Открыть оригинал

2,8 тыс. stars Качество 72 Тренд 47MIT

⚙️ Набор инструментов для инъекции зависимостей, основанный на 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
Открыть полный README на GitHub

Рекомендуемые инструменты

Попробуйте другой запрос или уберите фильтр.

Установка

npx skillfish add samber/do
Новичок в MCP? Начните с руководства на mcpskill.org →