LINUX.ORG.RU
ФорумTalks

Представлена реализация Tor на языке Rust, которая в будущем заменит вариант на Си

 


0

5
★★★★★

Последнее исправление: fsb4000 (всего исправлений: 1)
Ответ на: комментарий от TDrive

если в коде не используются блоки «unsafe»

И в зависимостях тоже.

более высокой скорости разработки,… за счёт выразительности языка

Для кого: для машины? Нужно, чтобы для человека.

Да и для машины он, очевидно, настолько ужасен, что компилируется мееееедленно.

gag ★★★★★
()
Ответ на: комментарий от gag

как видишь разработчики тора считают наоборот, а они разработчики тора, а чего дибился ты?

TDrive ★★★★★
()
Ответ на: комментарий от vertexua

Передете в пещеры к борцам к systemd.

Отлично сопьются споются)

meliafaro ★★★★★
()
Ответ на: комментарий от anonymous-angler

Увы. Ему можно только посочувствовать, братишка поставил все свои сбережения на одну лошадь.

Боюсь, что там всё настолько плохо, что у человека реально шарики за ролики заехали.

WatchCat ★★★★★
()
Ответ на: комментарий от pekmop1024

С ключами взятыми из min-sized-rust:

lto = true
opt-level = 'z'
panic = 'abort'
codegen-units = 1
$ du -sh target/release/arti
3.0M	target/release/arti
$ strip target/release/arti
$ du -sh target/release/arti
2.2M	target/release/arti
NeXTSTEP ★★
()
Ответ на: комментарий от pekmop1024

Стало даже интересно. Конечно сейчас рано делать выводы, так как проект ещё не дописан до конца. TOR собран с -march=native -O2 -ftree-vectorize.

$ tor --version
Tor version 0.4.5.9

$ du -h /usr/bin/tor
2,9M    /usr/bin/tor

$ file /usr/bin/tor
/usr/bin/tor: ELF 64-bit LSB pie executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 3.2.0, stripped
# arti target-cpu=native strip=symbols
2,3M    opt-level=z lto=fat   panic=abort
2,6M    opt-level=s lto=thin  panic=abort
2,7M    opt-level=s lto=false panic=abort
3,0M    opt-level=s lto=thin  panic=unwind
3,1M    opt-level=3 lto=thin  panic=abort
3,1M    opt-level=3 lto=false panic=abort
3,3M    opt-level=s lto=false panic=unwind
3,5M    opt-level=3 lto=thin  panic=unwind
3,5M    opt-level=2 lto=false panic=unwind
3,6M    opt-level=3 lto=false panic=unwind

Красивая раскрутка стека прилично сказывается на размере файла.

$ ldd target/release/arti
        linux-vdso.so.1 (0x00007fff4734c000)
        libsqlite3.so.0 => /usr/lib64/libsqlite3.so.0 (0x00007f967e7b8000)
        liblzma.so.5 => /lib64/liblzma.so.5 (0x00007f967e790000)
        libssl.so.1.1 => /usr/lib64/libssl.so.1.1 (0x00007f967e6f8000)
        libcrypto.so.1.1 => /usr/lib64/libcrypto.so.1.1 (0x00007f967e438000)
        libgcc_s.so.1 => /usr/lib/gcc/x86_64-pc-linux-gnu/10.3.0/libgcc_s.so.1 (0x00007f967e418000)
        libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f967e3f8000)
        libm.so.6 => /lib64/libm.so.6 (0x00007f967e2c0000)
        libdl.so.2 => /lib64/libdl.so.2 (0x00007f967e2b8000)
        libc.so.6 => /lib64/libc.so.6 (0x00007f967e100000)
        /lib64/ld-linux-x86-64.so.2 (0x00007f967ec98000)
        libz.so.1 => /lib64/libz.so.1 (0x00007f967e0e0000)
        libicui18n.so.69 => /usr/lib64/libicui18n.so.69 (0x00007f967ddc8000)
        libicuuc.so.69 => /usr/lib64/libicuuc.so.69 (0x00007f967dbd8000)
        libstdc++.so.6 => /usr/lib/gcc/x86_64-pc-linux-gnu/10.3.0/libstdc++.so.6 (0x00007f967da00000)
        libicudata.so.69 => /usr/lib64/libicudata.so.69 (0x00007f967bea0000)

$ ldd /usr/bin/tor
        linux-vdso.so.1 (0x00007ffc037dc000)
        libz.so.1 => /lib64/libz.so.1 (0x00007fe1ff3c0000)
        libm.so.6 => /lib64/libm.so.6 (0x00007fe1ff288000)
        libevent-2.1.so.7 => /usr/lib64/libevent-2.1.so.7 (0x00007fe1ff230000)
        libssl.so.1.1 => /usr/lib64/libssl.so.1.1 (0x00007fe1ff198000)
        libcrypto.so.1.1 => /usr/lib64/libcrypto.so.1.1 (0x00007fe1feed8000)
        libseccomp.so.2 => /usr/lib64/libseccomp.so.2 (0x00007fe1feeb0000)
        libpthread.so.0 => /lib64/libpthread.so.0 (0x00007fe1fee90000)
        libc.so.6 => /lib64/libc.so.6 (0x00007fe1fecd8000)
        /lib64/ld-linux-x86-64.so.2 (0x00007fe1ff6e8000)
        libdl.so.2 => /lib64/libdl.so.2 (0x00007fe1fecd0000)

Видно, что в Rust версии появились sqlite, lzma и icu. Похоже, что из-за icu тянется stdc++.

numas13
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.