Implement TCP primitives in the net
standard library
#324
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR adds raw TCP networking primitives to the
net
standard library, building on top of the newasync-*
infrastructure and networking stack introduced in #310 and subsequent commits.This will open up a whole lot of previously blocked use cases, most importantly integrations with databases (Postgres, MySQL, Redis, ...) that all use plain TCP (with optional TLS) for communication.
Some additional details for anyone interested:
rustls
, just likenet.request
andnet.socket
already donet.tcp.connect
is the way to access this new constructor.We have also added
net.http
with aliases to the existing functions likenet.http.request
for symmetry. The point of this is to avoid ambiguity between the increasing number of functions innet
, and be able to more easily addnet.udp
and similar APIs in the near term future.@lune/db
for native Postgres/Redis integration for better user experience, similar to how Bun and other modern runtimes for other languages do.