• Что использовать для отрисовки 3d графики на Rust?

    vabka
    @vabka
    Токсичный шарпист
    Самое модное и молодёжное - wgpu
    Умеет работать с Vulkan, Metal, OpenGL, DirectX, WebGL. На главной странице есть и примеры приложений

    Ещё, возможно, тебя заинтересует naga, как дополнение к wgpu - это либа для трансляции шейдеров.

    Ещё, возможно, тебя заинтересует bevy
    - это ECS-фреймворк для разработки игр и не только. В него встроена поддержка wgpu
    Ответ написан
    2 комментария
  • Как сделать автоподьём ссесии tmux?

    fara_ib
    @fara_ib
    Tmux автозапуск при подключении по ssh
    У меня часто бывает, что я подключусь к серверу по ssh и запускаю какую либо задачу (копирование, проверки) которая может затянуться. Потом внезапно либо ssh отвалится ибо подключился с ноутбука или, что чаще всего случается - перевожу комп в спячку напрочь забыв про то, что там где-то что-то на сервере выполняется. Выполняемая на сервере задача при этом само собой прерывается. Все это от того, что я забываю запустить tmux при подключении.
    Чтобы этого не происходило, я настроил автозапуск tmux при подключении по SSH.

    Нужно добавить небольшой кусочек кода в .bashrc
    добавляем следующее в ~/.bashrc:

    if [[ -z $TMUX && -n $SSH_TTY ]]; then
    me=$(whoami)
    real_tmux=$(command -v tmux)
    if [ -z $real_tmux ]; then
    echo "No tmux installed."
    fi
    export TERM="xterm-256color"
    if $real_tmux has-session -t $me 2>/dev/null; then
    $real_tmux attach-session -t $me
    else
    if [[ -n $SSH_TTY ]]; then
    (tmux new-session -d -s $me && tmux attach-session -t $me)
    fi
    fi
    fi
    Ответ написан
    4 комментария
  • Как подключить и использовать json конфиг в rust?

    bingo347
    @bingo347
    Crazy on performance...
    В константах как не странно можно использовать только константы.
    Варианта 2:
    1. Написать процедурный макрос, который прочитает нужный JSON в компайл-тайм и сгенерирует код константы, так кстати и саму структуру можно генерировать.
    2. Зашить байты JSON в бинарь через макрос include_bytes!, а парсить при старте программы или в lazy_static.

    Но вообще у меня есть ощущение, что Вы в принципе неправильно решаете свою задачу. Константы - это по своей сути компайл-тайм сущности, а смысл конфига обычно - получить параметры в ран-тайм.
    Скорее всего Вам достаточно будет простого lazy_static
    Ответ написан
    5 комментариев
  • Как достать превью видео с youtube?

    @DimaX
    Чтобы 100% надежно - это брать данные у первоисточника, т.е. из Youtube API, информация тут https://developers.google.com/youtube/v3/docs/vide... , вам нужна будет часть snippet (параметр part=snippet в запросе к API):

    https://www.googleapis.com/youtube/v3/videos?id=%VIDEO_ID%&part=snippet

    Если самостоятельно разбираться с программированием, API и прочим не планируется, то можно использовать бесплатный онлайн сервис, который выдает ссылку на превью видео в максимальном доступном качестве.
    Ответ написан
    Комментировать
  • Как достать превью видео с youtube?

    @a22432
    Немного Web
    Большая картинка
    https://i.ytimg.com/vi/--------ID--------/maxresdefault.jpg

    Маленькая картинка
    https://i.ytimg.com/vi/--------ID--------/hqdefault.jpg
    Ответ написан
    2 комментария
  • Как убрать кавычки в результате вывода содержимого файла после его чтения в Rust?

    vabka
    @vabka
    Токсичный шарпист
    {:?} использует Debug для форматирования. В твоём случае он тебе не нужен.

    Попробуй вот так:
    #[get("/index")]
    pub async fn index() -> impl Responder {
        let path = Path::new("test.txt");
        spawn_blocking(|| cat(path)).await?
    }
    
    fn cat(path: &Path) -> io::Result<String> {
        let mut f = File::open(path)?;
        let mut s = String::new();
        match f.read_to_string(&mut s) {
            Ok(_) => Ok(s),
            Err(e) => Err(e),
        }
    }


    Кстати, твоя функция cat использует синхронный IO, так что её следует вызывать в spawn_blocking.
    Но лучше будет перейти на tokio или async_std
    Ответ написан
    3 комментария