Post

I've been experimenting with PSObject binary encodings to replace CLIXML - CBOR and Protobuf are both great candidates, with significantly smaller size, but also much faster encoding and decoding performance! Which one would you like to be supported natively in PowerShell?

Not sure how much my vote counts, but I'd say: Why not both? CBOR if I had to choose, but both have active ecosystems, and both would be good ecosystems to be able to work with. PowerShell should always be able to talk to as many standards as is possible and simple.

Cool! I have one simple additional ask, strange as it might seem: Allow a custom transform (preferably thru a [ScriptBlock] or [func[PSObject]] ) The goal here would not be universal operability, but specific high-performance compatibility. Otherwise it's always 'select *'

0 reposts0 likes

You mean combine Select-Object with the object exporting/importing? I'm building cmdlets for PSObject serialization/deserialization to go along my PSRemoting module right now

Not select-object (for various reasons, mostly performance) There are several major utilities: 1. Optionally thinning the message sent 2. Securing the message on the way out 3. Debugging the message before it goes out 4. Optionally using other protocols (udp, http, etc)

To explain #4 a bit. If we're basically saying that transmitting a PSObject -eq "serializing it" + "sending over the wire", then a custom scriptblock / func opens a lot of doors. Theoretically, it opens all of them (quickly). What is any server message but a serialization of state?