6 ms·
MsQuic – QUIC Implementation from Microsoft
- elitistphoenix 6y agoI'm glad the support linux straight out of the box
- simonw 6y agoMIT licensed cross-platform C. Ten years ago I wouldn't have believed it. Today it's not even surprising. I really like this version of Microsoft.
- battery_cowboy 6y agoI'm with you, and I'm happy that it seems like they are trying to become a good steward in the software industry. I am impressed by the quality of Windows 10, up to about a year ago I used Linux daily because it was a better experience than Windows 98 through 8.1, until recently. Lately, I find it's way easier to run Windows 10 with WSL rather than screw around with Linux trying to get things to work correctly that I just plug in to Windows. I hope they start giving more control to us, though, because I'm tired of having to firewall block telemetry and forced to have Cortana installed or whatever other garbage. If Microsoft allowed me to install Windows like I do Debian, where I can pick my packages and leave out what I don't want, and they also allowed for replacement APIs, so I could swap explorer.exe for my own version for example, I'd never use Linux again. But that'll never happen, so I'll just use tools to block that stuff for now and hope the Linux experience catches up.
- vorpalhex 6y agoEven during the evil days Microsoft occasionally produced great software like Microsoft Money. Like any large corporation, MS is not a single cohesive entity and I suspect the Win10 group pushing metrics and Cortana is not the same folks writing nifty quic implementations.
- battery_cowboy 6y agoExactly! I loved Microsoft money, BTW, I wish it was still a thing.
- chungy 6y agoWhile not in active development, you can still download the Sunset Edition for free.
- cosmie 6y agoWhile not quite the same, they're releasing an Excel feature/template called "Money in Excel" soon[1], that uses a Plaid integration to pull live financial data into Excel to work with. [1] https://support.office.com/en-us/article/what-is-money-in-excel-0fb4710d-169e-45a7-ad60-ca98103d4e6a https://support.office.com/en-us/article/what-is-money-in-ex...
- garaetjjte 6y ago>I am impressed by the quality of Windows 10 Weird, I must have some different edition of Windows. Totally inconsistent settings/control panel interfaces, updates taking ages, updates failing when you look at it wrong (and then stuck in update-revert loop every boot), driver setup taking minutes, and I constantly discover some new disk-hogging background process.
- nxc18 6y agoYou're forgetting about the comparison to a linux desktop though. I personally would really love to switch to Ubuntu full time, but I'm not going to forgive it soon for bricking my machine after a software update. Unfortunately for Linux, the automated recovery tools just aren't there like on Windows - if a Windows update breaks the system, it will be able to recover itself 90% of the time. Yeah, the UI is shitty and inconsistent and there's lots of nonsense in the background, but ultimately those don't matter as much as baseline reliability. No one hunts for WiFi drivers on Windows, at least not since Vista.
- EvanAnderson 6y agoCompared to the last Linux GUI distros I used Windows 10 is a massive step up. Compared to Windows 7 it's a massive step down. Can't speak to Linux distros bricking my or my Customers' machines. Windows 10 update-induced issues have caused me a lot more headaches than Windows 7 ever did, though.
- Ericson2314 6y agoNixOS's rollbacks make the updating safer than Windows or regular Linux distros.
- knocte 6y agoI'm with you on the licensing side. But C? come on Microsoft.
- pjmlp 6y agoYeah, they are also using C in Azure Sphere, which for me kind of blows away the whole security sales story of the platform. What use is to have Fort Knox security level if the foundations are built on top of quick sand.
- a_imho 6y agoPeople cheering on Microsoft embracing things. Ten years ago I wouldn't have believed it. Today it's not even surprising. /s
- gnulinux 6y agoI'm just waiting for the sine curve to come down again. Companies who can change from that to this in 10 years because FLOSS became hip and popular, can change the other way around if it increases their profits.
- snarfy 6y agoI don't think that will happen as long as Satya is driving.
- gnulinux 6y agoMaybe, maybe not. CEOs are replaceable as well. But if the society is dependent on Microsoft, we will remain dependent even after Satya. Look, I'm not trying to preach anything. I love this MS as much as the next guy. It's just useful to think that companies can change both ways because ultimately what a company wants is to maximize profits, it's naive to think MSFT is trying to accomplish anything other than this. It's useful to think this for the long-term picture.
- slowstart 6y agoPlease fire away any questions you may have! I lead the team that built this library. This blog has details on current development status and adoption within Microsoft: https://techcommunity.microsoft.com/t5/networking-blog/msquic-is-open-source/ba-p/1345441 https://techcommunity.microsoft.com/t5/networking-blog/msqui...
- gravypod 6y agoSorry, this might be a bit off topic but it's something I've been excited about for a while. From what I've heard Microsoft is sort of getting behind gRPC. Have you tested using QUIC as a transport layer for the gRPC client/server libraries that MS maintains? Are you seeing notable performance benefits with QUIC as the underlying channel?
- slowstart 6y agoRPC/gRPC are certainly possible use cases for the QUIC transport protocol. But no, we have not yet explored the use of QUIC in this context. For now we are focused on workloads that will benefit the most from the tail latency performance and security improvements that QUIC brings.
- davidfowl 6y agoI'm from the .NET Core team and we've looked at it a little from the HTTP/3 angle but not from a pure QUIC angle. This is because the gRPC RPC protocol is described in terms of HTTP/2 frames today.
- Matthias247 6y agogRPC encoded data is actually not tightly coupled to HTTP/2 frames. It's described as a stream of gRPC chunk encoded data on top of a HTTP stream. But the gRPC frames do not necessarily have to align with HTTP/2 data frames boundaries. See https://github.com/grpc/grpc/blob/master/doc/PROTOCOL-HTTP2.md#data-frames https://github.com/grpc/grpc/blob/master/doc/PROTOCOL-HTTP2.... The specification makes gRPC sound rather tightly bound to HTTP/2 level details, but I don't think it really is. You should be able to speak gRPC just fine over any kind of HTTP. One main pain point for browser support however had been APIs to exchange trailers, which are necessary for gRPC.
- fulafel 6y agoIn the FAQ it says this is going into the Windows kernel. Is there a sockets api emerging for QUIC or will each impl have its own api?
- slowstart 6y agoThere is currently no standardization for QUIC APIs. You can check out the MsQuic API here: https://github.com/microsoft/msquic/blob/master/docs/API.md https://github.com/microsoft/msquic/blob/master/docs/API.md
- modeless 6y agoThe feature I most want in a new network protocol is multipath to enable seamless and automatic connection migration between wifi and cellular. I haven't been following QUIC standardization, is that feature in now or postponed to the future?
- slowstart 6y agoConnection migration is part of the current Internet-Drafts. The generalized support for multi-path (i.e. usage of more than one path at the same time) is postponed to a future version of the protocol. You can follow the standards work here: https://quicwg.org/ https://quicwg.org/
- modeless 6y agoGood to hear, but it seems like using both paths at the same time would be necessary for connection migration to work well, as you're often not sure which connection is actually better. If you have to wait until you're completely sure one connection is gone before switching wholesale to the other, that removes a lot of the benefit of connection migration.
- legulere 6y ago> MsQuic is shipped in-box in the Windows kernel in the form of the msquic.sys driver Does that mean that a HTTP.SYS Webserver will also Support QUIC?
- ComodoHacker 6y agoYou mean IIS? HTTP.SYS isn't a webserver.
- convFixb 6y agoHTTP.SYS is the core of a Windows NT native web server; the async listen/accept loop, IOCP-based data transfer, etc. IIS is built on top of HTTP.SYS. I presume that it ships with Windows for ease of servicing; it is after all a kernel-mode driver (of sorts).
- legulere 6y agoThe kernel module HTTP.SYS contains a HTTP server. It's used by IIS, but you can also use its API directly.
- ComodoHacker 6y agoWow, didn't know that. API for the curious: https://docs.microsoft.com/en-us/windows/win32/http/http-api-start-page https://docs.microsoft.com/en-us/windows/win32/http/http-api...
- slowstart 6y agoWe are currently testing HTTP/3 support in IIS/http.sys internally. Cannot comment on any external product release timelines.
- PudgePacket 6y agoSee here for other QUIC implementations: https://en.wikipedia.org/wiki/QUIC#Source_code https://en.wikipedia.org/wiki/QUIC#Source_code Maybe this one can be added to the list.
- sally1620 6y ago"cross-platform" software that only runs on Linux and Windows.
- durkpolish 6y agowow there is such a news which help to other people and also which help to someone click this link https://www.myapklab.com/applanet-apk/ https://www.myapklab.com/applanet-apk/
- est 6y agoWill there be a Python binding?
- akmittal 6y agoWhy everyone is making their own QUIC implementations. There are so many already https://en.wikipedia.org/wiki/QUIC#Source_code https://en.wikipedia.org/wiki/QUIC#Source_code
- nindalf 6y agoPossibly the result of an industry scarred by the experience of depending on a TLS library that everyone thought was secure because “hey everyone is using it”. Now they want to make sure they understand and control critical security infrastructure. Multiple implementations of a protocol are by no means a bad thing. The opposite is a problem - too few implementations means that the implementations dictate the spec and creating something compatible requires implementing bugs of those implementations too. That said, I’d be surprised if we still had this many implementations 5 years from now. I think at least some of those will become unmaintained and instead use what Google/Microsoft/Mozilla/Cloudflare have developed.
- beagle3 6y agoLikely for the same reason everyone tries making their own web browser, even though the other guys' are all gratis (and many of them libre): When something is a platform, you are either a landlord or a tenant. Google and Apple have seen what happens to Microsoft's tenants, so they decided to be landlords. Microsoft knows how awful a landlord it had been (and after decades of landlord-only status, suffered abuse as a tenant at Google's gmail and youtube platforms), so it also tries to be a landlord in every way it can; It couldn't attract it's own tenants to Windows Phone, IE11 and its own Edge, so it has to offer subleases on Android, iOS and Blink(=Edgium) these days. QUIC looks more "behind the scenes" as a platform right now, but building your own is a very cheap hedge against ceding complete control of what could become a potentially fundamental platform to your competitors. So everyone does that. I'm no fan of Microsoft, and I believe that Microsoft has been "beaten to submission" rather than "left the dark side", so to speak. But regardless of the overall technical quality or moral/values one assigns to Microsoft - they are a smart, politically and business oriented and savvy corporation. This is a "staying relevant and in control" move.
- heycam 6y agoNice. For comparison, here is Mozilla's implementation in Rust, which is integrated into Firefox: https://github.com/mozilla/neqo https://github.com/mozilla/neqo
- AndrewDucker 6y agoGreat to see that SMB-over-QUIC is being trialled. I'd love to see more applications using QUIC as a transport - particularly if they're going to be on mobile - or switching back and forth between WiFi and mobile signals (which, on TCP, means dropping the connection and creating a new one).
- maallooc 6y agoWow, I noticed it was a Microsoft code. I think I would have noticed it without the information. Is there a Microsoft style guideline when writing C?
- tyrion 6y agoNetworking code written in C! I wonder what can go wrong?
- tandr 6y agoJust like whole Linux, *BSD, Windows network stack, all these drivers for embedded systems... smh