Fork me on GitHub
#announcements
<
2023-08-17
>
weavejester22:08:10

Ring 1.11.0-alpha1 is now available. It's an experimental release with the following features: • WebSocket support added • Jetty adapter updated to 11.0 • Multipart middleware dependency on Java servlets removed

🎉 119
gratitude 24
seancorfield22:08:30

Very cool to see this! I am pretty surprised given your comments in the GH issue about Jetty 10/11 support -- it sounded like you might leave the whole updated adapter thing to others in the community?

seancorfield22:08:18

Do you have links to more information about how the WebSocket stuff works @U0BKWMG5B? I'm wondering how different it is to the sunng87 adapter (since we switched to that some time back when it seemed the core Ring adapter wasn't going to be updated beyond Jetty 9).

2
hifumi12323:08:31

IIRC the java 1.8 support was valid in the past when it was the majority of use in production. If we can trust the Clojure survey results this year and last year, java 1.8 has been a minority for a while now. It seems like the majority of Clojure users are on either 11 or 17, which is good news

weavejester08:08:54

@U04V70XH6 The main sticking point for supporting Jetty 10/11 was the requirement for Java 11, as Clojure itself supports back to Java 8. However, with FileUpload 2.0.0 moving to Java 11 as well, and Jetty 9.4 being on life-support, it finally tipped the scales in favour of an update. Another factor was that at the time the issue was raised, Java 11 was 2.5 years old, and now it's 5 years old.

weavejester08:08:09

As for the websocket information, I'm going to be writing an updated specification today, but the interface is almost the same as the one written up for the Ring 2.0 spec (https://github.com/ring-clojure/ring/blob/2.0/SPEC-2.md#3-websockets), except that I decided to include methods for ping/pong as well. Initially I wasn't sure how many implementations supported them, and I wanted to support the lowest common denominator, but after looking I was unable to find any existing implementation that lacked support for ping/pong.

weavejester15:08:47

I've added a wiki page that explains the websocket syntax: https://github.com/ring-clojure/ring/wiki/WebSockets

👍 2