Size: a a a

Kotlin Community

2020 November 16

AN

Alexander Nozik in Kotlin Community
Michael Mazaev
у меня okhttp
поищу повнимательней
источник

KG

Kirill Gamazkov in Kotlin Community
Michael Mazaev
что лучше использовать вместо inputStream.read и outputStream.write в корутинах, чтобы избежать блокирования потока?
Смотря сколько у вас этого самого IO.
Если один-два дескриптора, то nio - оверкилл, достаточно в Dispatchers.IO вынести ввод-вывод.
Если много - то nio/nio2
источник

MM

Michael Mazaev in Kotlin Community
Мерси
источник

AN

Alexander Nozik in Kotlin Community
Но я не уверен насчет корутин. В кторе точно есть. Про OK мог наврать
источник

OY

Oleg Yukhnevich in Kotlin Community
там вроде тоже только блокирующий IO (не suspend)
если корутины, то только в ktor-io и в korio
источник

MM

Michael Mazaev in Kotlin Community
Kirill Gamazkov
Смотря сколько у вас этого самого IO.
Если один-два дескриптора, то nio - оверкилл, достаточно в Dispatchers.IO вынести ввод-вывод.
Если много - то nio/nio2
Вполне возможно оверкилл
Но мне интересно разобраться, чтобы знать что к чему в будущем
источник

AN

Alexander Nozik in Kotlin Community
Oleg Yukhnevich
там вроде тоже только блокирующий IO (не suspend)
если корутины, то только в ktor-io и в korio
Может быть. Вот смотрю, тоже не вижу.
источник

OY

Oleg Yukhnevich in Kotlin Community
Alexander Nozik
Может быть. Вот смотрю, тоже не вижу.
https://github.com/square/okio/issues/814
там есть только issue
источник

KG

Kirill Gamazkov in Kotlin Community
Ещё вот тут можно подглядеть реализацию https://github.com/cy6erGn0m/kotlinx-sockets
источник

OY

Oleg Yukhnevich in Kotlin Community
не надо
это сейчас есть в ktor :)
источник

KG

Kirill Gamazkov in Kotlin Community
Michael Mazaev
Вполне возможно оверкилл
Но мне интересно разобраться, чтобы знать что к чему в будущем
Примерно так:
nio на коллбэках. JVM под капотом держит небольшой тредпул, который возится с ожиданием файлов/сети и дёргает ваши коллбэки.
nio2 - через polling, вы сами рулите тредами, которые подёргивают JVM за селекторы на тему "ну чо там, прочиталося уже? а теперь? а щас? а ещё нет?" - по идее лучше ложится на корутины, но в рукопашную это всё писать, наверное, не стоит
источник

AN

Alexander Nozik in Kotlin Community
Оно все пока не очень живое. Живая реализация в ktor. Потом io будет ковыряться отдельно на основе опыта
источник

OY

Oleg Yukhnevich in Kotlin Community
Alexander Nozik
Оно все пока не очень живое. Живая реализация в ktor. Потом io будет ковыряться отдельно на основе опыта
вот эта ссылка, это прям то(с доработками), что сейчас живёт в ktor-io и ktor-network
источник

AN

Alexander Nozik in Kotlin Community
Oleg Yukhnevich
вот эта ссылка, это прям то(с доработками), что сейчас живёт в ktor-io и ktor-network
Да я знаю. Пока решили всю разработку сфокусировать в кторе без релиза отдельной либы. А к отдельному io вернуться потом.
источник

OY

Oleg Yukhnevich in Kotlin Community
Alexander Nozik
Да я знаю. Пока решили всю разработку сфокусировать в кторе без релиза отдельной либы. А к отдельному io вернуться потом.
ага, и советуют сейчас для io использовать okio, знаю
источник

AN

Alexander Nozik in Kotlin Community
Oleg Yukhnevich
ага, и советуют сейчас для io использовать okio, знаю
ну можно и ktor-io, но он все-таки довольно зоточен под ktor. Я сижу на своем форке kotlinx-io. Но там корутин нет. И не так просто их туда закинуть
источник

OY

Oleg Yukhnevich in Kotlin Community
Alexander Nozik
ну можно и ktor-io, но он все-таки довольно зоточен под ktor. Я сижу на своем форке kotlinx-io. Но там корутин нет. И не так просто их туда закинуть
> но он все-таки довольно зоточен под kto
да не сказал бы, Если честно
он в общем сам слегка страшненький внутри, но так вроде ок
я же rsocket-kotlin сначала делал на основ kotlinx-io 0.2
так переход был почти просто замена импортов в основном

да и на том же ktor-io вроде даже более-менее обернул kotlinx.nodejs апишку, чтобы работать с nodejs tcp server/client - так что пользоваться можно
источник

AN

Alexander Nozik in Kotlin Community
Oleg Yukhnevich
> но он все-таки довольно зоточен под kto
да не сказал бы, Если честно
он в общем сам слегка страшненький внутри, но так вроде ок
я же rsocket-kotlin сначала делал на основ kotlinx-io 0.2
так переход был почти просто замена импортов в основном

да и на том же ktor-io вроде даже более-менее обернул kotlinx.nodejs апишку, чтобы работать с nodejs tcp server/client - так что пользоваться можно
Там унутре экспозятся некоторые довольно страшные апишки.
источник

AK

Andrey Kuleshov in Kotlin Community
Мелкая статейка про линтеры в котлине: https://akuleshov7.com/2020-11-10-kotlin-static-analyzers.html

Будет круто, если кому-то будет полезно. А если будет - то буду рад, если вы кинете звездочку одному маленькому проекту из этой статьи, чтобы обогнать проклятый неправославный  фейсбучный линтер.  https://github.com/cqfn/diKTat 😇
источник
2020 November 17

IP

Iaroslav Postovalov in Kotlin Community
можно ли безопасно добавить java.io.Serializable к котлиновскому object?
источник