Incubator for a high level, TCP based, connection oriented API for fs2.io.net. See typelevel/fs2#3419 for details.
Specifically:
- Support both single and pooled connections.
- Health checking
- Proper idle/eof handling
- Detailed metrics describing pool state
Skunk's session and pool apis:
Session
: https://github.com/typelevel/skunk/blob/main/modules/core/shared/src/main/scala/Session.scala#L412-L431Pool
: https://github.com/typelevel/skunk/blob/main/modules/core/shared/src/main/scala/util/Pool.scala#L48-L65
http4s:
EmberConnection
: https://github.com/http4s/http4s/blob/main/ember-client/shared/src/main/scala/org/http4s/ember/client/EmberConnection.scala#L27-L39
- If this functionality is incorporated in to fs2-io, it cannot depend on otel4s (as otel4s depends on fs2). Metrics would need to be exposed via an API that another library bridges to otel4s.
- Maybe this is enough of a reason to keep fs2-cnxs as a separate library (and with an otel4s dependency)?