Saltar al contenido

Referencia de paquetes y providers ​

Esta página está organizada según la pregunta que intenta resolver una aplicación, no según el layout del directorio packages/. Importa desde el paquete público más pequeño que sea dueño del contrato. El comportamiento específico del runtime se expone mediante un subpath explícito. Los paquetes provider no son implementaciones intercambiables con una única garantía universal.

Cómo leer esta página ​

  • Contract significa una interfaz portable o neutral respecto al provider.
  • Provider significa una implementación respaldada por memoria, un archivo, un servicio de red o una biblioteca nativa.
  • Lifecycle adapter significa un wrapper Server alrededor de un recurso nativo creado por la aplicación.
  • Evidence identifica el tipo de respaldo del repositorio: source/export, pruebas declaradas o resultado de un comando local reportado. No convierte una versión de paquete en una afirmación sobre npm o producción.

El inventario de source actual contiene 45 manifests de paquetes @go-like/* no privados y 27 subpaths públicos de source, todos en la versión 0.0.1 en este checkout. Los 44 workspaces examples/* son aplicaciones privadas, no paquetes públicos.

Elige por tarea ​

TareaEmpieza conAñade cuando haga faltago-like no controla
Exponer una API Web@go-like/web, @go-like/core@go-like/web/node o el handler Fetch nativo de un frameworkRouter, middleware del framework, auth, policy de responses
Llamar a un servicio interno@go-like/client, @go-like/transport@go-like/transport-memory, @go-like/transport-http, @go-like/structIdempotencia de negocio, IDL generado, RPC full-duplex
Descubrir instancias de servicio@go-like/registryUn provider de Registry, filters y un SelectorConsistencia de leases/revisiones del backend o service locator global
Cargar configuración@go-like/configenv/file/YAML o un provider externo de ConfigConfiguración global implícita y transacciones entre recursos
Guardar bytes autoritativos@go-like/storeProvider de Memory, File, Consul, etcd o VaultUna base de datos/ORM genérica o garantías uniformes del provider
Cachear valores desechables@go-like/cacheProvider de Memory o RedisAutoridad, persistencia, CAS, estado de negocio durable
Publicar o consumir bytes@go-like/brokerMemory, RabbitMQ o NATSack/nack/term universal, DLQ, offset durable, exactly-once
Añadir payloads de eventos tipados@go-like/eventUn Codec de la aplicaciónSchema registry, replay, policy de settlement
Ejecutar un scheduler o worker existente@go-like/core@go-like/croner, @go-like/bullmq, @go-like/natsQueue, processor, policy de jobs o conexión de broker nativos
Añadir operaciones@go-like/health, @go-like/resiliencePino, Winston, OTel, PrometheusInstrumentación global, auth, policy de despliegue

Paquetes base ​

PaqueteÚsalo paraAPI pública principalNota de runtime y propiedad
@go-like/contextCancelación explícita, deadlines, causas y valoresbackground, todo, withCancel, withCancelCause, withDeadline, withDeadlineCause, withTimeout, withTimeoutCause, cause, withoutCancel, withValue, afterFunc, canceled, deadlineExceededContrato de source portable. Context usa AbortSignal internamente; no es un ABI de Go ni una bolsa DI
@go-like/coreComponer el ciclo de vida de la aplicación y los recursosnewApp, server, registrar, beforeStart, afterStart, beforeStop, afterStop, startTimeout, stopTimeout, context, id, name, version, metadata, endpoint, newContext, fromContextServer y App estructurales y portables. Las llamadas stop de hermanos son concurrentes
@go-like/metadataMetadata inmutable de múltiples valores y propagación explícitatipos de metadata y funciones de propagaciónLos dominios de metadata de Client y Server están separados; metadata no es identidad confiable
@go-like/structValidación Struct en runtime para endpoints tipados y JSONstruct, Infer, Struct, StructErrorPaquete público actual. Es validación en runtime, no Protobuf, IDL ni código generado
@go-like/healthRegistry de probes de liveness y readinessnewProbeRegistry, ProbeRegistry, Probe, ProbeReportLiveness vacío pasa; readiness vacío falla cerrado; el timeout default del probe es 1,000 ms
@go-like/resilienceRetry explícito, circuit breaker y rate limiting no bloqueanteretry, exponentialBackoff, newCircuitBreaker, newTokenBucketLimiter, circuitOpenLa autorización del retry la declara el caller; no hay idempotencia automática ni tarea de limiter en segundo plano

Paquetes Web y de llamadas internas ​

PaqueteÚsalo paraAPI pública principalNo controla
@go-like/webHandler Web estándar y bridge de Context de la requestHandler, ContextHandler, contextHandlerRutas, WebSockets, policy de SSE, listener, autenticación
@go-like/web/healthRutas de handlers de healthcreateHealthHandlerRegistro de probes o montaje de rutas del framework
@go-like/web/nodeListener Node alrededor de un Fetch HandlernewNodeServer, hostname, port, nodeShutdownTimeoutTLS/HTTP2 del transporte HTTP interno; para eso usa @go-like/transport-http/node
@go-like/clientLlamadas internas unary, discovery, selección, middleware, retries y poolingnewClient, withTransport, withEndpoint, withDiscovery, withSelector, withFilter, withBlock, withRetry, middleware, use, circuitBreakerMiddleware, closeTimeout, poolSize, poolTtlRutas del framework, seguridad de replay de negocio, límites de sockets físicos
@go-like/serverServer interno de JSON Fetch o SSE y dispatch de rutasnewServer, transport, address, advertise, Server.registerHandler, httpRoute, middleware, use, listenOption, rateLimitMiddlewareRouter del framework y autorización de la aplicación
@go-like/transportSPI de Transport y frontera Fetch Request/ResponseTransport, Client, Listener, defineService, ServerStream, TransportInfo, Endpoint, endpoint, chain, serviceErrorUn wire concreto si no seleccionas un provider; no hay promise de full-duplex interno
@go-like/transport-memoryTransport unary en procesonewMemoryTransportComportamiento entre procesos, persistencia, fallback de red, TLS
@go-like/transport-httpTransport HTTP interno respaldado por FetchnewHTTPTransport, executor, maxMessageBytesUn listener portable completo sin un HTTPHost inyectado; controles TLS nativos de Node
@go-like/transport-http/nodeTransport HTTP interno nativo de NodenewNodeHTTPTransport, allowHTTP1, clientAuthPolicy de seguridad automática
@go-like/transport-grpc-bufConnect/gRPC-Web unary, server-streamingnewHandler, fromHandlerContext, callOptionsCódigo Context-first sobre Protobuf-ES
@go-like/transport-grpc-buf/nativegRPC estándar con cuatro cardinalidades mediante /nativenewClient, newServerDiscovery, Selector, TLS/mTLS
@go-like/protoc-gen-likeGenerador Node durante el buildprotoc-gen-like, protocGenLikeProtobuf-ES

Paquetes de Config ​

Paquete o subpathÚsalo paraFunción principalFrontera
@go-like/configManager de Config y sources de objetosnewConfig, source, objectSource, schema, resolver, placeholderResolver, onReloadError, onTerminalErrorSnapshots inmutables y ciclo de vida aceptado del watcher; no es un Server de Core por sí mismo
@go-like/config/envSource explícito de un record de entornoenvSourceAcepta un record inyectado; no lee globals ambientales del runtime
@go-like/config/fileSource de archivo y contrato de decoder JSONfileSource, jsonFileDecoderNecesita una capacidad explícita de archivo
@go-like/config/nodeCapacidad de archivo de NodenewNodeFileCapabilitySubpath específico de runtime Node
@go-like/config/yamlDecodificación YAML a ConfigObjectdecodeYamlDecodificar no es observar un source ni publicar un schema
@go-like/config-consulSource de configuración HTTP de ConsulconsulSource, jsonConsulDecoderComportamiento de blocking-query y consistencia de Consul
@go-like/config-etcdSource de configuración del gateway etcdetcdSource, jsonEtcdDecoderComportamiento de revision, compaction y protocolo del gateway
@go-like/config-kubernetesUna key de un ConfigMap o Secret de KuberneteskubernetesSource, jsonKubernetesDecoderSemántica de resource-version/relist; no hay transacción entre recursos
@go-like/config-vaultSource de Vault KV v2vaultSourceAutenticación, TLS, policy de tokens y semántica KV de Vault

Los providers externos de Config usan Fetch estándar inyectado. Las credenciales y los redirects tienen comportamiento de seguridad específico de cada provider; http frente a https sigue siendo una decisión de la aplicación o del despliegue, salvo que un provider lo rechace.

Paquetes de Registry ​

PaqueteÚsalo paraFunción principalNota de runtime/backend
@go-like/registryContrato, snapshot, filters y selectorsfilterVersion, filterLabel, newRandomSelector, newRoundRobinSelector, newWeightedRoundRobinSelector, newP2CSelector, newEWMASelectorSnapshots de reemplazo completo; el feedback de selección es explícito
@go-like/registry/providerHelpers para autores de providers y diagnósticos de registrationproviderOptions, notifyRegistrationError, helpers de snapshot/providerSubpath para providers, no suele ser el entrypoint de una aplicación
@go-like/registry-consulRegistration y discovery de ConsulnewConsulRegistryFiltrado por health, blocking-query y comportamiento TTL/critical nativos de Consul
@go-like/registry-etcdRegistration y discovery de etcdnewEtcdRegistryLeases, revisiones, watch/relist y compaction
@go-like/registry-kubernetesDiscovery de EndpointSlice y registration opcionalnewKubernetesRegistryEndpointSlice de Kubernetes, owner references, no TTL inventado
@go-like/registry-mdnsDiscovery multicast localnewMDNSRegistryEl provider root es portable por diseño; el host UDP es /node
@go-like/registry-mdns/nodeCapacidad multicast UDP de NodenewNodeMDNSHostSubpath explícito del runtime Node
@go-like/registry-zookeeperRegistration y discovery ephemeral de ZooKeepernewZookeeperRegistryNode.js y Bun documentados

Registry es estado de reachability, no datos duraderos de negocio. Un provider puede conservar el último snapshot mientras reconstruye un watcher transitorio, pero un snapshot vacío autoritativo debe fallar cerrado.

Paquetes Store y Cache ​

PaqueteÚsalo paraFunción principalFrontera
@go-like/storeContrato y opciones de recordsexpiresIn, ifAbsent, ifRevision, prefix, limit, cursorRevisiones, CAS, TTL y paginación; las capacidades varían por provider
@go-like/store/providerHelpers de write/delete/list de providerswriteOptions, deleteOptions, listOptions, helpers de snapshot y conflictoOrientado a providers; no es un backend durable por sí mismo
@go-like/store-memoryPruebas de Store local al procesonewMemoryStore, clockNo hay durabilidad tras reinicio ni estado entre procesos
@go-like/store-fileStore de archivos localnewFileStoreEstado local de un solo owner; usa /node para el host Node
@go-like/store-file/nodeCapacidad de archivos de NodenewNodeFileStoreHostSubpath explícito de Node
@go-like/store-consulStore KV de ConsulnewConsulStoreSessions de Consul, combinaciones TTL/CAS y comportamiento incierto de mutaciones
@go-like/store-etcdStore KV de etcdnewEtcdStoreGateway, lease, revision, compaction y comportamiento incierto de mutaciones
@go-like/store-vaultStore KV v2 de VaultnewVaultStoreNo promete semántica uniforme de TTL/CAS del Store
@go-like/cacheContrato de valores desechables/TTLexpiresInNo tiene CAS, revision, durabilidad ni autoridad
@go-like/cache-memoryCache local al procesonewMemoryCache, clockNo hay persistencia; expiración lazy; sirve para pruebas y aceleración local
@go-like/cache-redisCache respaldado por RedisnewRedisCacheLa conexión nativa de Redis, el manejo de credenciales de la URL y los requisitos de runtime siguen visibles

Paquetes de Broker, eventos y trabajo ​

Paquete o subpathÚsalo paraFunción principalFrontera
@go-like/brokerContrato Broker de bytes/topicsnewBrokerServerNo hay ack/nack/term portable, DLQ, retry ni offset durable
@go-like/broker/providerRegistration terminal del providerregisterSubscriberTerminal, subscriberTerminalBookkeeping del ciclo de vida orientado al provider
@go-like/broker-memoryBroker en proceso con topics exactosnewMemoryBrokerPrivado de cada instancia, broadcast, sin settlement durable
@go-like/broker-rabbitmqBroker RabbitMQ borrowed, confirm o recoveringnewRabbitMqBroker, newConfirmRabbitMqBroker, newRecoveringRabbitMqBrokerChannel/connection de amqplib y semántica nativa de settlement
@go-like/eventCodec tipado sobre un BrokereventBrokerLa entrega nativa sigue visible; no hay replay ni schema registry
@go-like/natsCiclo de vida y entrypoints de broker nativo NATSnewNatsCoreServer, natsCoreDrainTimeoutConnection y semántica de suscripción Core siguen nativas
@go-like/nats/brokerBroker NATS CorenewNatsCoreBrokerMsg nativo, queue group, drain y semántica at-most-once
@go-like/nats/jetstreamCiclo de vida de ConsumerMessages de JetStreamnewNatsJetStreamServer, natsJetStreamCloseTimeoutComportamiento nativo de cierre/stop/closed de ConsumerMessages
@go-like/nats/jetstream/brokerBroker de bytes tipado sobre JetStreamnewNatsJetStreamBrokerJsMsg, PubAck, ack/nak/term, redelivery y DLQ siguen nativos
@go-like/cronerCiclo de vida de jobs Croner existentesnewCronerServerSchedule, callback, overlap y semántica terminal pasiva de Croner
@go-like/bullmqCiclo de vida de un Worker BullMQ existentenewBullMqWorkerServer, bullMqWorkerShutdownTimeoutQueue, Redis, processor, retry/backoff, stalled jobs e identidad de job

Paquetes de logging y observabilidad ​

PaqueteÚsalo paraFunción principalNo controla
@go-like/pinoWrappers de requests/brokers Pino y lifecycle de drainlogClient, logUnaryMiddleware, logWebHandler, logBroker, newPinoServer, pinoDrainTimeoutCreación del logger, policy de destino, redacción, setup global
@go-like/winstonWrappers Winston y ciclo de vida de shutdownwrappers de logging, newWinstonServerLogger/transports y sus semánticas nativas de finish/close
@go-like/otelWrappers explícitos de traces/metrics OpenTelemetrynewOtelServer, traceClient, traceUnaryMiddleware, traceWebHandler, traceBroker, measureClient, measureClientMiddleware, measureUnaryMiddleware, newRequestMetricsProviders globales, exporters, context manager, instrumentación automática
@go-like/prometheusMétricas de requests Prometheus y Handler de scrapenewRequestMetrics, measureClient, measureUnaryMiddleware, measureWebHandler, measureBroker, createPrometheusHandlerRegistry global, collectors fuera del Registry proporcionado, tareas en segundo plano

Inventario completo de subpaths públicos de source ​

Estos son los 27 subpaths explícitos de source declarados por los manifests de paquetes actuales. Los paquetes generados pueden añadir un export ./package.json solo de metadata; eso no es un paquete nuevo ni una API de source.

#SubpathExports principalesAudiencia
1@go-like/broker/providerregisterSubscriberTerminal, subscriberTerminalAutores de providers
2@go-like/cache/providerputOptionsAutores de providers
3@go-like/config/envenvSourceAutores de aplicaciones
4@go-like/config/filefileSource, jsonFileDecoderAutores de aplicaciones
5@go-like/config/nodenewNodeFileCapabilityAutores para runtime Node
6@go-like/config/yamldecodeYamlAutores de aplicaciones
7@go-like/core/lifecyclewaitForContextAutores de providers/ciclo de vida
8@go-like/core/nodesignalIntegración de procesos Node/Bun
9@go-like/nats/brokernewNatsCoreBrokerAplicaciones NATS Core
10@go-like/nats/jetstreamnewNatsJetStreamServer, natsJetStreamCloseTimeoutAplicaciones JetStream
11@go-like/nats/jetstream/brokernewNatsJetStreamBrokerAplicaciones Broker JetStream
12@go-like/registry/provideropciones de provider y helpers de snapshotsAutores de providers
13@go-like/registry-mdns/nodenewNodeMDNSHostAplicaciones mDNS de Node
14@go-like/store/provideropciones de write/delete/list y snapshotsAutores de providers
15@go-like/store-file/nodenewNodeFileStoreHostAplicaciones Store de archivos Node
16@go-like/struct/codecencodeJson, decodeJsonAutores de contratos tipados
17@go-like/struct/runtimeintrospection y helpers de parsingAutores de runtime/providers
18@go-like/transport/headersGo-Like-Metadata, Go-Like-Timeout-MsAutores de providers de transport
19@go-like/transport/jsonencodeJsonBody, decodeJsonBody, jsonContentTypeAutores de transport tipado/raw
20@go-like/transport/providermetadata, codecs de ServiceError, errores de transport y observeCallAutores de providers
21@go-like/transport-http/nodenewNodeHTTPTransport, allowHTTP1, clientAuthAplicaciones HTTP de Node
22@go-like/web/healthcreateHealthHandlerAplicaciones Web
23@go-like/web/nodenewNodeServer, hostname, port, nodeShutdownTimeoutAplicaciones host Web de Node
24@go-like/client/discoverynewDiscoveryResolver, DiscoveryResolverAutores de aplicaciones
25@go-like/transport-grpc-buf/nativenewClient, newServerAutores de aplicaciones
26@go-like/transport/sseencodeSSEComment, encodeSSEEvent, encodeSSEJsonEvent, eventStreamContentTypeSSE server streams
27@go-like/web/bunnewBunServer, hostname, port, bunShutdownTimeoutWeb applications

@go-like/otel/testing y @go-like/web/node/testing no son mappings de paths de TypeScript ni exports actuales de los manifests de paquetes. No los documentes como entrypoints públicos.

Matriz de decisión de runtime ​

Entrada o familia de providersSource portableNative de Bun/NodeRedacción de evidencia
Context, Core root, Health, Metadata, Resilience, StructSíNo requiere import nativoContrato de source; revisa la matriz ejecutada actual antes de redactar para una release
Web root y Web healthSíRequieren un host separadoEl Handler es portable; un Handler no es un listener
Memory Transport, Memory Store, Memory Cache, Memory BrokerSource local al procesoSin servicio externoNo distribuido, durable ni entre procesos
HTTP root y providers Fetch-backed de Config/Registry/StoreFetch inyectadoEl runtime elige FetchPortable por source o lane declarada, no parity universal
Subpaths /nodeNoEspecíficos de Node, con posibilidad de ejecución en BunUn import explícito cambia el grafo de runtime
NATS, RabbitMQ, BullMQ, Redis, Pino, Winston, SDKs nativos de OTelDepende del providerFixtures Node/Bun o evidencia específica del paqueteLee el README del provider y el scope de E2E
ZooKeeperNoNode/BunNo generalices desde el Registry root

Reglas para elegir funciones ​

  • Usa contextHandler en el borde Web cuando necesites Context, no una bolsa custom de request del framework.
  • Usa newApp y server(...) cuando un proceso tenga más de un recurso admitido o cuando quieras que la propiedad de signal y shutdown sea explícita.
  • Usa server.registerHandler(endpoint, handler) tipado cuando ambos lados deban compartir validación Struct en runtime. Usa server.registerHandler(service, endpoint, handler) sin tipos cuando la aplicación sea dueña de otro contrato de bytes.
  • Usa withEndpoint(...) al construir el cliente para el enrutamiento directo. Para Discovery, usa juntos withEndpoint("discovery:///<name>") y withDiscovery(...); no combines direcciones directas con Discovery. Ambas fuentes usan el mismo Selector.
  • Usa withSelector(...), withFilter(...) y withBlock() solo cuando el servicio necesite el comportamiento de plano de control que agregan.
  • Usa withRetry(...) solo después de escribir la autorización de replay, el máximo total de intentos, el predicate de fallos y la idempotencia de negocio.
  • Usa newMemoryStore para pruebas deterministas, no para afirmar durabilidad.
  • Usa newMemoryCache para aceleración desechable, no como autoridad de citas o pagos.
  • Usa newBrokerServer para conectar una suscripción a Core, no para obtener un worker de colas universal ni una API de settlement.
  • Usa newOtelServer, newPinoServer, newWinstonServer o un Handler de Prometheus solo después de que la aplicación haya creado el provider o Registry nativo.

Exclusiones explícitas ​

@go-like/protoc-gen-like genera código Protobuf RPC con Context como primer argumento sobre Protobuf-ES. @go-like/transport-grpc-buf ofrece unary y server-streaming de Connect/gRPC-Web mediante Fetch; /native añade gRPC estándar con las cuatro cardinalidades, incluidas client-streaming y bidi. Es una vía independiente del camino interno Fetch/SSE.

Esto no incluye gRPC estándar en el navegador, request-streaming/bidi mediante Fetch, health/reflection oficiales, autenticación genérica, Event Store/replay, ORM ni orquestación de clústeres.

gRPC administrado en Node 26.12.1 y Bun 1.4.4 pasó la regresión de drain con un consumidor lento. No se ha verificado la resolución de los límites históricos de cancelación y apagado de Connect 2.1.2 y Bun 1.4.2 Fetch.