
@apg has joined the channel

I’m in NYC this week for work conference so I haven’t had much time, but here’s a brief status update on the net2
work: - The “transport” interface is mostly designed and documented, along with data types needed for it (ip addresses, domain names, URI “reg-name” values, etc.) - Figured out how to properly use UNIX domain sockets as a URI authority without breaking the relevant RFCs, so net2
will be able to treat remote connections and local socket connections in a uniform way - Implemented some new stuff in the disposable
package that net2
will use for connection management
Stuff I’m working on next:
- Designing how “connectors” will work, specifically how to ensure they’ll support automatic/generic connection pooling properly
- Fleshing out design of
net2/system
(which uses generic stuff innet2
to construct TCP connections / unix sockets / TLS tunnels / etc.) - Figuring out how logging should work - currently leaning toward connectors using disposables to add automatic logging to all connection info since it’s really useful to just have by default
- Thinking more about how generic listeners will work
After those bits are designed and documented I’ll focus on implementing them before designing higher-level stuff

also, neat thing I found out: gRPC uses HTTP2 as a transport layer so Racket might get gRPC support out of this

gRPC support would be nice

there is a HTTP1.1 gateway for gRPC, too

so, the bigger need, really, is good protobuf support.

(does that exist yet?)

IMO, due to HTTP1.1’s lack of request multiplexing the perf would be so incredibly bad that using gRPC over 1.1 for any non-toy project would be a huge mistake

there is the murphy-protobuf
package that used to be on PLaneT, not sure if it’s been ported to <http://pkgs.racket-lang.org\|pkgs.racket-lang.org>

it also looks a bit old, so probably doesn’t support newer versions

a #lang protobuf
would be… maybe interesting?

maybe

I’ve got ideas for IDLs like that but they all require a lot of infrastructure libs be built up first

probably makes sense to utilize .proto, really

for .proto files specifically, my “ideal” solution would be a #lang protobuf
that let you turn a .proto
file into a racket module by just sticking that lang line on top (removing the need for racket code generation tools), coupled with a way to tell racket / drracket to treat all files with a certain file extension as having that lang line by default so you don’t actually need to edit existing proto files

so https://bitbucket.org/chust/racket-protobuf/ builds a (define-message …) that the compiler emits

that seems smart

(whoa bitbucket’s new UI threw me off)

oh that’s the murphy protobuf lib!

it is?

here’s the planet page: http://planet.racket-lang.org/display.ss?package=protobuf.plt&owner=murphy

plus docs (in old style) http://planet.racket-lang.org/package-source/murphy/protobuf.plt/1/1/planet-docs/main/index.html

murphy is Thomas Chust?

or did Thomas Chust recopyright everything?

unsure

¯_(ツ)_/¯

anyway. it’s an old protobuf spec and would need updating. :slightly_smiling_face:

might be someone else “took ownership” and ported it to new repo? that happened a few times during transition from planet to pkgs

but before doing any of this stuff, http has to not suck :p

haha. protobuf is useful even without gRPC

yeah you can send serialized proto messages as http request and response bodies directly, so you don’t need gRPC’s definition of services and service methods

so, just for personal usage. i’ve got trillions of data points that are sitting as protobuf

well.. not “personal” but work stuff

that slicing and dicing with protobuf would be nice for

need to do some prototyping of data storage things

that makes sense

for now I’m trying to limit the scope of stuff I work on in this space exclusively to networked / distributed stuff

so how important something is to that space is the metric I’m using to prioritize

only slightly related: proto3 does bad things with unknown fields that break things when they’re used in proxies

@notjack fair! as someone who has spent the last few nights doing things to slideshow, and then working on building a sokoban game (in a slightly odd way. each tile is a pict, and I build the board by folding vl-append, and htl-append, then draw that pict into the canvas — seems slow, actually, but easy)… I appreciate the idea of focused work.

I’m a fan of my own focused work letting everyone else spend more time on whatever work they’re doing, focused or otherwise, that’s even slightly related to mine :P

oh, me too!

“you do you”

racket is neat and more people should have the stuff they need to make neat things with it