Size: a a a

Rust — русскоговорящее сообществo

2020 August 16

AN

Alex Noname in Rust — русскоговорящее сообществo
Эрик
А, dyn Fn(T).
а что ты дальше будешь делать с Fn(T) как её вызывать?
источник

EG

Emmanuel Goldstein in Rust — русскоговорящее сообществo
А, нет, нельзя без async trait, который точно так же положит футуру в бокс
источник

EG

Emmanuel Goldstein in Rust — русскоговорящее сообществo
Максимум получился вот такой треш, и он всё равно делает Box<dyn Future>, просто неявно.
источник

MB

Mikail Bagishov in Rust — русскоговорящее сообществo
Emmanuel Goldstein
Можно, но, кажется, можно более аккуратно
Тебе необходимо стереть тип футуры тем или иным образом.
Box<dyn Future + Send + 'static> имхо самый простой.
источник

EG

Emmanuel Goldstein in Rust — русскоговорящее сообществo
Был вроде какой-то крейт, который выглядит как HashMap<..., V>, но при этом имеет метод «добавить элемент, подобрав любой свободный ключ»?
источник

EG

Emmanuel Goldstein in Rust — русскоговорящее сообществo
О, generational-arena
источник

R

Roman in Rust — русскоговорящее сообществo
Emmanuel Goldstein
Был вроде какой-то крейт, который выглядит как HashMap<..., V>, но при этом имеет метод «добавить элемент, подобрав любой свободный ключ»?
Любого типа?
источник

EG

Emmanuel Goldstein in Rust — русскоговорящее сообществo
Roman
Любого типа?
Любого типа на выбор крейта. generational-arena это оно.
источник

R

Roman in Rust — русскоговорящее сообществo
Таких много. Slab так же может
источник

l

lulz in Rust — русскоговорящее сообществo
badtrousers
ну если оффтоп, то просьба кто-то может на вот этот вопрос ответить, очень интересно есть ли у кого-то success story с растом в контексте мультимедиа/стриминга и тд
Приветствую, есть хорошие примеры? нашел только ffmpeg связку
источник

НК

Николай Кошкин... in Rust — русскоговорящее сообществo
Привет, подскажите пожалуйста, как лучше сделать.
У меня HTTP сервер на actix-web (actix-rt runtime), к нему дописываю scheduler, типа cron, работает в отдельном потоке, но там тоже
используются асинхронные функции, то есть мне туда нужно прокинуть tokio::Runtime.
Пока вижу два варианта: просто в новом потоке заново создать новый tokio::Runtime, или же прокинуть в новый поток handler из корневого рантайма. Как более правильно и производительно?
источник

Э

Эрик in Rust — русскоговорящее сообществo
Николай Кошкин
Привет, подскажите пожалуйста, как лучше сделать.
У меня HTTP сервер на actix-web (actix-rt runtime), к нему дописываю scheduler, типа cron, работает в отдельном потоке, но там тоже
используются асинхронные функции, то есть мне туда нужно прокинуть tokio::Runtime.
Пока вижу два варианта: просто в новом потоке заново создать новый tokio::Runtime, или же прокинуть в новый поток handler из корневого рантайма. Как более правильно и производительно?
Однотредовый рантайм запустить в потоке просто? Он вроде нормально работает.
источник

S

Sese in Rust — русскоговорящее сообществo
А мож просто отдельную футуру с tokio::spawn запустить?
источник

Э

Эрик in Rust — русскоговорящее сообществo
Sese
А мож просто отдельную футуру с tokio::spawn запустить?
Их всё равно local спавнить, отдельный же поток у шедулера, зачем туда-сюда таски по тредам кидать.
источник

НК

Николай Кошкин... in Rust — русскоговорящее сообществo
А накладные расходы на создания ещё одного рантайма не хуже?
источник

НК

Николай Кошкин... in Rust — русскоговорящее сообществo
И может ли как-то scheduler замедлять вебсервер ощутимо, если в рантайме основном плодить таски?
источник

НК

Николай Кошкин... in Rust — русскоговорящее сообществo
То есть, в какой реализации сильнее всего пострадает пропускная способность веб-сервера?
источник

Э

Эрик in Rust — русскоговорящее сообществo
Никто не знает.
источник

Э

Эрик in Rust — русскоговорящее сообществo
Без тестов тебе никто не скажет.
источник

НК

Николай Кошкин... in Rust — русскоговорящее сообществo
ну может кто-то знает примерно сколько ресурсов жрёт рантайм )
источник