Rust
Open in Telegram
ΠΠΎΠ»Π΅Π·Π½ΡΠΉ ΠΊΠΎΠ½ΡΠ΅Π½Ρ ΠΏΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π½Π° Rust
Show more2 230
Subscribers
+324 hours
+37 days
+230 days
Posts Archive
2 230
ΠΡΠΏΡΡΠΊ Rust 1.87
Π Π΄Π΅Π½Ρ ΠΏΡΠ°Π·Π΄Π½ΠΎΠ²Π°Π½ΠΈΡ Π΄Π΅ΡΡΡΠΈΠ»Π΅ΡΠΈΡ Ρ ΠΌΠΎΠΌΠ΅Π½ΡΠ° Π²ΡΠΏΡΡΠΊΠ° ΡΠ·ΡΠΊΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Rust 1.0 (ΠΏΡΠΎΠ΅ΠΊΡ Rust Π±ΡΠ» ΠΎΡΠ½ΠΎΠ²Π°Π½ Π² 2006 Π³ΠΎΠ΄Ρ, Π²ΡΠΏΡΡΠΊ 0.1 Π±ΡΠ» ΡΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½ Π² 2012 Π³ΠΎΠ΄Ρ, Π° ΠΏΠ΅ΡΠ²Π°Ρ ΡΡΠ°Π±ΠΈΠ»ΡΠ½Π°Ρ Π²Π΅ΡΡΠΈΡ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½Π° Π² 2015 Π³ΠΎΠ΄Ρ) ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½ ΡΠ΅Π»ΠΈΠ· Rust 1.87. Π―Π·ΡΠΊ ΡΡΠΎΠΊΡΡΠΈΡΠΎΠ²Π°Π½ Π½Π° Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΠΉ ΡΠ°Π±ΠΎΡΠ΅ Ρ ΠΏΠ°ΠΌΡΡΡΡ ΠΈ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΡΠ΅Π΄ΡΡΠ²Π° Π΄Π»Ρ Π΄ΠΎΡΡΠΈΠΆΠ΅Π½ΠΈΡ Π²ΡΡΠΎΠΊΠΎΠ³ΠΎ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΠΈΠ·ΠΌΠ° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π·Π°Π΄Π°Π½ΠΈΠΉ, ΠΏΡΠΈ ΡΡΠΎΠΌ ΠΎΠ±Ρ
ΠΎΠ΄ΡΡΡ Π±Π΅Π· ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΠ±ΠΎΡΡΠΈΠΊΠ° ΠΌΡΡΠΎΡΠ° ΠΈ runtime (runtime ΡΠ²ΠΎΠ΄ΠΈΡΡΡ ΠΊ Π±Π°Π·ΠΎΠ²ΠΎΠΉ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΈ ΡΠΎΠΏΡΠΎΠ²ΠΎΠΆΠ΄Π΅Π½ΠΈΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ).
ΠΠ΅ΡΠΎΠ΄Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΠΏΠ°ΠΌΡΡΡΡ Π² Rust ΠΈΠ·Π±Π°Π²Π»ΡΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° ΠΎΡ ΠΎΡΠΈΠ±ΠΎΠΊ ΠΏΡΠΈ ΠΌΠ°Π½ΠΈΠΏΡΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ ΡΠΊΠ°Π·Π°ΡΠ΅Π»ΡΠΌΠΈ ΠΈ Π·Π°ΡΠΈΡΠ°ΡΡ ΠΎΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ, Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡΡΠΈΡ
ΠΈΠ·-Π·Π° Π½ΠΈΠ·ΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ Ρ ΠΏΠ°ΠΌΡΡΡΡ, ΡΠ°ΠΊΠΈΡ
ΠΊΠ°ΠΊ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΠ΅ ΠΊ ΠΎΠ±Π»Π°ΡΡΠΈ ΠΏΠ°ΠΌΡΡΠΈ ΠΏΠΎΡΠ»Π΅ Π΅Ρ ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π΅Π½ΠΈΡ, ΡΠ°Π·ΡΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ Π½ΡΠ»Π΅Π²ΡΡ
ΡΠΊΠ°Π·Π°ΡΠ΅Π»Π΅ΠΉ, Π²ΡΡ
ΠΎΠ΄ Π·Π° Π³ΡΠ°Π½ΠΈΡΡ Π±ΡΡΠ΅ΡΠ° ΠΈ Ρ.ΠΏ. ΠΠ»Ρ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½ΠΈΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ, ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ ΡΠ±ΠΎΡΠΊΠΈ ΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡΠΌΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠΌ ΡΠ°Π·Π²ΠΈΠ²Π°Π΅ΡΡΡ ΠΏΠ°ΠΊΠ΅ΡΠ½ΡΠΉ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ Cargo. ΠΠ»Ρ ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ crates.io.
ΠΠ΅Π·ΠΎΠΏΠ°ΡΠ½Π°Ρ ΡΠ°Π±ΠΎΡΠ° Ρ ΠΏΠ°ΠΌΡΡΡΡ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅ΡΡΡ Π² Rust Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ ΡΠ΅ΡΠ΅Π· ΠΏΡΠΎΠ²Π΅ΡΠΊΡ ΡΡΡΠ»ΠΎΠΊ, ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΠ΅ Π²Π»Π°Π΄Π΅Π½ΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌΠΈ, ΡΡΡΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΆΠΈΠ·Π½ΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² (ΠΎΠ±Π»Π°ΡΡΠΈ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΠΈ) ΠΈ ΠΎΡΠ΅Π½ΠΊΡ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΡΡΠΈ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΠΏΠ°ΠΌΡΡΠΈ Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠΎΠ΄Π°. Rust ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΡΠ΅Π΄ΡΡΠ²Π° Π΄Π»Ρ Π·Π°ΡΠΈΡΡ ΠΎΡ ΡΠ΅Π»ΠΎΡΠΈΡΠ»Π΅Π½Π½ΡΡ
ΠΏΠ΅ΡΠ΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΉ, ΡΡΠ΅Π±ΡΠ΅Ρ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ
ΠΏΠ΅ΡΠ΅Π΄ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ, Π»ΡΡΡΠ΅ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ ΠΎΡΠΈΠ±ΠΊΠΈ Π² ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ΅, ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅Ρ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΡ Π½Π΅ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΠΎΡΡΠΈ (immutable) ΡΡΡΠ»ΠΎΠΊ ΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ
ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ, ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅Ρ ΡΠΈΠ»ΡΠ½ΡΡ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΡΡ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΡ Π΄Π»Ρ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΡ
ΠΎΡΠΈΠ±ΠΎΠΊ.
https://www.opennet.ru/opennews/art.shtml?num=63242
π @rust_lib
2 230
π ΠΠΎΠ΄Π±ΠΎΡΠΊΠ° Telegram ΠΊΠ°Π½Π°Π»ΠΎΠ² Π΄Π»Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠΎΠ²
Π‘ΠΈΡΡΠ΅ΠΌΠ½ΠΎΠ΅ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅, DevOps π
https://t.me/bash_srv Bash Π‘ΠΎΠ²Π΅ΡΡ
https://t.me/win_sysadmin Π‘ΠΈΡΡΠ΅ΠΌΠ½ΡΠΉ ΠΠ΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡ Windows
https://t.me/sysadmin_girl ΠΠ΅Π²ΠΎΡΠΊΠ° Π‘ΠΈΡΠ°Π΄ΠΌΠΈΠ½
https://t.me/srv_admin_linux ΠΠ΄ΠΌΠΈΠ½ΡΠΊΠΈΠ΅ ΡΠ³ΠΎΠ΄ΡΡ
https://t.me/linux_srv Π’ΠΈΠΏΠΈΡΠ½ΡΠΉ Π‘ΠΈΡΠ°Π΄ΠΌΠΈΠ½
https://t.me/devopslib ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Π΄Π΅Π²ΠΎΠΏΡΠ° | DevOps, SRE, Sysadmin
https://t.me/linux_odmin Linux: Π‘ΠΈΡΡΠ΅ΠΌΠ½ΡΠΉ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡ
https://t.me/devops_star DevOps Star (ΠΠ²Π΅Π·Π΄Π° ΠΠ΅Π²ΠΎΠΏΡΠ°)
https://t.me/i_linux Π‘ΠΈΡΡΠ΅ΠΌΠ½ΡΠΉ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡ
https://t.me/linuxchmod Linux
https://t.me/sys_adminos Π‘ΠΈΡΡΠ΅ΠΌΠ½ΡΠΉ ΠΠ΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡ
https://t.me/tipsysdmin Π’ΠΈΠΏΠΈΡΠ½ΡΠΉ Π‘ΠΈΡΠ°Π΄ΠΌΠΈΠ½ (ΡΠΎΡΠΎ ΠΆΠ΅Π»Π΅Π·Π°, Π±ΡΠ»ΠΎ/ΡΡΠ°Π»ΠΎ)
https://t.me/sysadminof ΠΠ½ΠΈΠ³ΠΈ Π΄Π»Ρ Π°Π΄ΠΌΠΈΠ½ΠΎΠ², ΠΏΠΎΠ»Π΅Π·Π½ΡΠ΅ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»Ρ
https://t.me/i_odmin ΠΡΠ΅ Π΄Π»Ρ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠ³ΠΎ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΠ°
https://t.me/i_odmin_book ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Π‘ΠΈΡΡΠ΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΠ΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΠ°
https://t.me/i_odmin_chat Π§Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΡ
Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΠΎΠ²
https://t.me/i_DevOps DevOps: ΠΠΈΡΠ΅ΠΌ ΠΎ Docker, Kubernetes ΠΈ Π΄Ρ.
https://t.me/sysadminoff ΠΠΎΠ²ΠΎΡΡΠΈ ΠΠΈΠ½ΡΠΊΡ Linux
1C ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° π
https://t.me/odin1C_rus CΡΠ°ΡΡΠΈ, ΠΊΡΡΡΡ, ΡΠΎΠ²Π΅ΡΡ, ΡΠ°Π±Π»ΠΎΠ½Ρ ΠΊΠΎΠ΄Π° 1Π‘
https://t.me/DevLab1C 1Π‘:ΠΡΠ΅Π΄ΠΏΡΠΈΡΡΠΈΠ΅ 8
https://t.me/razrab_1C 1C Π Π°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ
https://t.me/buh1C_prog 1C ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡ | ΠΡΡ
Π³Π°Π»ΡΠ΅ΡΠΈΡ ΠΈ Π£ΡΡΡ
https://t.me/rabota1C_rus ΠΠ°ΠΊΠ°Π½ΡΠΈΠΈ Π΄Π»Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠΎΠ² 1Π‘
ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ C++π
https://t.me/cpp_lib ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° C/C++ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°
https://t.me/cpp_knigi ΠΠ½ΠΈΠ³ΠΈ Π΄Π»Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠΎΠ² C/C++
https://t.me/cpp_geek Π£ΡΠΈΠΌ C/C++ Π½Π° ΠΏΡΠΈΠΌΠ΅ΡΠ°Ρ
ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Python π
https://t.me/pythonofff Python Π°ΠΊΠ°Π΄Π΅ΠΌΠΈΡ.
https://t.me/BookPython ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Python ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°
https://t.me/python_real Python ΠΏΠΎΠ΄Π±ΠΎΡΠΊΠΈ Π½Π° ΡΡΡΡΠΊΠΎΠΌ ΠΈ Π°Π½Π³Π»ΠΈΠΉΡΠΊΠΎΠΌ
https://t.me/python_360 ΠΠ½ΠΈΠ³ΠΈ ΠΏΠΎ Python
Java ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° π
https://t.me/BookJava ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Java ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°
https://t.me/java_360 ΠΠ½ΠΈΠ³ΠΈ ΠΏΠΎ Java Rus
https://t.me/java_geek Π£ΡΠΈΠΌ Java Π½Π° ΠΏΡΠΈΠΌΠ΅ΡΠ°Ρ
GitHub Π‘ΠΎΠΎΠ±ΡΠ΅ΡΡΠ²ΠΎ π
https://t.me/Githublib ΠΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎΠ΅ ΠΈΠ· GitHub
ΠΠ°Π·Ρ Π΄Π°Π½Π½ΡΡ
(Data Base) π
https://t.me/database_info ΠΡΠ΅ ΠΏΡΠΎ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ
ΠΠΎΠ±ΠΈΠ»ΡΠ½Π°Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ°: iOS, Android π
https://t.me/developer_mobila ΠΠΎΠ±ΠΈΠ»ΡΠ½Π°Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ°
https://t.me/kotlin_lib ΠΠΎΠ΄Π±ΠΎΡΠΊΠΈ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠ³ΠΎ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»Π° ΠΏΠΎ Kotlin
Π€ΡΠΎΠ½ΡΠ΅Π½Π΄ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° π
https://t.me/frontend_1 ΠΠΎΠ΄Π±ΠΎΡΠΊΠΈ Π΄Π»Ρ frontend ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ²
https://t.me/frontend_sovet Frontend ΡΠΎΠ²Π΅ΡΡ, ΠΏΡΠΈΠΌΠ΅ΡΡ ΠΈ ΠΏΡΠ°ΠΊΡΠΈΠΊΠ°!
https://t.me/React_lib ΠΠΎΠ΄Π±ΠΎΡΠΊΠΈ ΠΏΠΎ React js ΠΈ Π²ΡΠ΅ ΡΡΠΎ Ρ Π½ΠΈΠΌ ΡΠ²ΡΠ·Π°Π½ΠΎ
Π Π°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΠΈΠ³Ρ π
https://t.me/game_devv ΠΡΠ΅ ΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ ΠΈΠ³Ρ
ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ π
https://t.me/book_for_dev ΠΠ½ΠΈΠ³ΠΈ Π΄Π»Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠΎΠ² Rus
https://t.me/programmist_of ΠΠ½ΠΈΠ³ΠΈ ΠΏΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ
https://t.me/proglb ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠ°
https://t.me/bfbook ΠΠ½ΠΈΠ³ΠΈ Π΄Π»Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠΎΠ²
ΠΠΈΠ³ΠΠ°ΡΠ°, ΠΌΠ°ΡΠΈΠ½Π½ΠΎΠ΅ ΠΎΠ±ΡΡΠ΅Π½ΠΈΠ΅ π
https://t.me/bigdata_1 Big Data, Machine Learning
ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ π
https://t.me/bookflow ΠΠ΅ΠΊΡΠΈΠΈ, Π²ΠΈΠ΄Π΅ΠΎΡΡΠΎΠΊΠΈ, Π΄ΠΎΠΊΠ»Π°Π΄Ρ Ρ IT ΠΊΠΎΠ½ΡΠ΅ΡΠ΅Π½ΡΠΈΠΉ
https://t.me/rust_lib ΠΠΎΠ»Π΅Π·Π½ΡΠΉ ΠΊΠΎΠ½ΡΠ΅Π½Ρ ΠΏΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π½Π° Rust
https://t.me/golang_lib ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Go (Golang) ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°
https://t.me/itmozg ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΡ, Π΄ΠΈΠ·Π°ΠΉΠ½Π΅ΡΡ, Π½ΠΎΠ²ΠΎΡΡΠΈ ΠΈΠ· ΠΌΠΈΡΠ° IT
https://t.me/php_lib ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° PHP ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠ° π¨πΌβπ»π©βπ»
https://t.me/nodejs_lib ΠΠΎΠ΄Π±ΠΎΡΠΊΠΈ ΠΏΠΎ Node js ΠΈ Π²ΡΠ΅ ΡΡΠΎ Ρ Π½ΠΈΠΌ ΡΠ²ΡΠ·Π°Π½ΠΎ
https://t.me/ruby_lib ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Ruby ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠ°
https://t.me/lifeproger ΠΠΈΠ·Π½Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠ°. ΠΠ²ΡΠΎΡΡΠΊΠΈΠΉ ΠΊΠ°Π½Π°Π».
QA, ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ π
https://t.me/testlab_qa ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΡΠ΅ΡΡΠΈΡΠΎΠ²ΡΠΈΠΊΠ°
Π¨ΡΡΠΊΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠΎΠ² π
https://t.me/itumor Π¨ΡΡΠΊΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠΎΠ²
ΠΠ°ΡΠΈΡΠ°, Π²Π·Π»ΠΎΠΌ, Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡ π
https://t.me/thehaking ΠΠ°Π½Π°Π» ΠΎ ΠΊΠΈΠ±Π΅ΡΠ±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ
https://t.me/xakep_2 Π₯Π°ΠΊΠ΅Ρ Free
ΠΠ½ΠΈΠ³ΠΈ, ΡΡΠ°ΡΡΠΈ Π΄Π»Ρ Π΄ΠΈΠ·Π°ΠΉΠ½Π΅ΡΠΎΠ² π
https://t.me/ux_web Π‘ΡΠ°ΡΡΠΈ, ΠΊΠ½ΠΈΠ³ΠΈ Π΄Π»Ρ Π΄ΠΈΠ·Π°ΠΉΠ½Π΅ΡΠΎΠ²
ΠΠ°ΡΠ΅ΠΌΠ°ΡΠΈΠΊΠ° π
https://t.me/Pomatematike ΠΠ°Π½Π°Π» ΠΏΠΎ ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΠΊΠ΅
https://t.me/phis_mat ΠΠ±ΡΡΠ°ΡΡΠΈΠ΅ Π²ΠΈΠ΄Π΅ΠΎ, ΠΊΠ½ΠΈΠ³ΠΈ ΠΏΠΎ Π€ΠΈΠ·ΠΈΠΊΠ΅ ΠΈ ΠΠ°ΡΠ΅ΠΌΠ°ΡΠΈΠΊΠ΅
https://t.me/matgeoru ΠΠ°ΡΠ΅ΠΌΠ°ΡΠΈΠΊΠ° | ΠΠ΅ΠΎΠΌΠ΅ΡΡΠΈΡ | ΠΠΎΠ³ΠΈΠΊΠ°
Excel Π»Π°ΠΉΡΡ
Π°ΠΊπ
https://t.me/Excel_lifehack
https://t.me/mir_teh ΠΠΈΡ ΡΠ΅Ρ
Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ (Technology World)
ΠΠ°ΠΊΠ°Π½ΡΠΈΠΈ π
https://t.me/sysadmin_rabota Π‘ΠΈΡΡΠ΅ΠΌΠ½ΡΠΉ ΠΠ΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡ
https://t.me/progjob ΠΠ°ΠΊΠ°Π½ΡΠΈΠΈ Π² IT
2 230
Rustubble
ΠΡΠΎΡ ΠΏΡΠΎΠ΅ΠΊΡ Π½Π°ΡΠ΅Π»Π΅Π½ Π½Π° ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π°Π±ΠΎΡΠ° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π² ΡΠ΅ΡΠΌΠΈΠ½Π°Π»ΡΠ½ΡΡ
ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡ
.
ΠΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ TextInput β ΡΡΠΎ ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½ΠΎΠ΅ ΠΈ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°Π΅ΠΌΠΎΠ΅ ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠ΅ ΠΏΠΎΠ»Π΅ Π²Π²ΠΎΠ΄Π°, ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π½ΠΎΠ΅ Π΄Π»Ρ ΡΠ΅ΡΠΌΠΈΠ½Π°Π»ΡΠ½ΡΡ
ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π° ΡΠ·ΡΠΊΠ΅ Rust. ΠΠ½ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Unicode, Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΡ Π²Π²ΠΎΠ΄Π° ΠΈ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΎΠΏΡΠΈΠΉ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ Π΄Π»Ρ ΡΠ»ΡΡΡΠ΅Π½ΠΈΡ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ.
ΠΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ:
* ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Unicode: ΠΠ΅Π· ΠΏΡΠΎΠ±Π»Π΅ΠΌ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ Π²Π²ΠΎΠ΄ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² Unicode.
* ΠΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠ°Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π²Π²ΠΎΠ΄Π°: ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Π²Π²ΠΎΠ΄ Π² ΡΠ΅Π°Π»ΡΠ½ΠΎΠΌ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ, Π²ΠΊΠ»ΡΡΠ°Ρ Π²ΡΡΠ°Π²ΠΊΡ ΠΈ ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΡΠ΅ΠΊΡΡΠ°.
* ΠΠΈΠ±ΠΊΠ°Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠ°: ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π·Π°Π΄Π°Π²Π°ΡΡ ΠΎΡΡΡΡΠΏΡ, ΠΏΠ»Π΅ΠΉΡΡ
ΠΎΠ»Π΄Π΅Ρ, Π½Π°ΡΠ°Π»ΡΠ½ΡΠΉ ΡΠ΅ΠΊΡΡ ΠΈ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°ΡΠ΅Π»ΡΠ½ΡΠΉ ΡΠ΅ΠΊΡΡ.
* Π£ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΊΡΡΡΠΎΡΠΎΠΌ: ΠΠΎΠ½ΡΡΠΎΠ»ΠΈΡΡΠ΅Ρ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΊΡΡΡΠΎΡΠ° ΠΈ Π³Π°ΡΠ°Π½ΡΠΈΡΡΠ΅Ρ Π΅Π³ΠΎ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΠ΅ ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ.
https://github.com/warpy-ai/rustubble
π @rust_lib
2 230
π» 100 ΡΠΏΡΠ°ΠΆΠ½Π΅Π½ΠΈΠΉ Π΄Π»Ρ ΠΈΠ·ΡΡΠ΅Π½ΠΈΡ Rust
Π Π΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ 100-exercises-to-learn-rust ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅Ρ ΠΏΠΎΠ΄Π±ΠΎΡΠΊΡ ΠΈΠ· 100 Π·Π°Π΄Π°Ρ Π΄Π»Ρ ΠΏΡΠ°ΠΊΡΠΈΠΊΠΈ Rust. Π£ΠΏΡΠ°ΠΆΠ½Π΅Π½ΠΈΡ ΠΏΠΎΠΊΡΡΠ²Π°ΡΡ ΡΠΈΡΠΎΠΊΠΈΠΉ ΡΠΏΠ΅ΠΊΡΡ ΡΠ΅ΠΌ: ΠΎΡ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ° ΠΈ ΡΠ°Π±ΠΎΡΡ Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌΠΈ Π΄ΠΎ Π±ΠΎΠ»Π΅Π΅ ΡΠ»ΠΎΠΆΠ½ΡΡ
ΡΠ΅ΠΌ Π²ΡΠΎΠ΄Π΅ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΡΡΠΈ ΠΈ Π°ΡΠΈΠ½Ρ
ΡΠΎΠ½Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ.
ΠΠ°ΠΆΠ΄ΠΎΠ΅ Π·Π°Π΄Π°Π½ΠΈΠ΅ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΎ Π½Π° Π·Π°ΠΊΡΠ΅ΠΏΠ»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΉ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΠΈ ΠΈ ΡΠ°ΡΡΠΎ ΡΠΎΠΏΡΠΎΠ²ΠΎΠΆΠ΄Π°Π΅ΡΡΡ ΠΊΡΠ°ΡΠΊΠΈΠΌΠΈ ΠΏΠΎΡΡΠ½Π΅Π½ΠΈΡΠΌΠΈ. ΠΡΠ»ΠΈΡΠ½ΡΠΉ ΡΠΏΠΎΡΠΎΠ± ΡΠ°Π·Π²ΠΈΡΡ Π½Π°Π²ΡΠΊΠΈ, Π΅ΡΠ»ΠΈ Π²Ρ ΡΠΎΠ»ΡΠΊΠΎ Π½Π°ΡΠΈΠ½Π°Π΅ΡΠ΅ ΠΈΠ·ΡΡΠ°ΡΡ Rust ΠΈΠ»ΠΈ Ρ
ΠΎΡΠΈΡΠ΅ ΡΠ³Π»ΡΠ±ΠΈΡΡ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΡΠ·ΡΠΊΠ°.
https://github.com/mainmatter/100-exercises-to-learn-rust
π @rust_lib
2 230
Blue Recorder - ΠΏΡΠΎΡΡΠΎΠΉ ΡΠΊΡΠ°Π½Π½ΡΠΉ ΡΠ΅ΠΊΠΎΡΠ΄Π΅Ρ, Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡΠΉ Π½Π° Rust Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ Green Recorder
ΠΡΠΎΡΡΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ Π·Π°ΠΏΠΈΡΠΈ ΡΠΊΡΠ°Π½Π° Π½Π° Linux. ΠΠΎΡΡΡΠΎΠ΅Π½ΠΎ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ GTK4 ΠΈ ffmpeg.
ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Π·Π°ΠΏΠΈΡΡ Π°ΡΠ΄ΠΈΠΎ ΠΈ Π²ΠΈΠ΄Π΅ΠΎ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π½Π° Π²ΡΠ΅Ρ
ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°Ρ
Linux Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΎΠΉ ΡΠ΅ΡΠ²Π΅ΡΠ° ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Wayland Π² ΡΠ΅ΡΡΠΈΡΡ
GNOME.
Π Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΠΎΡΠΌΠ°ΡΡ: mkv, avi, mp4, wmv, gif ΠΈ nut.
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π»Π΅Π³ΠΊΠΎ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π·Π°ΠΏΠΈΡΡ, ΡΡΠ»ΠΊΠ½ΡΠ² ΠΏΡΠ°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡΡΠΈ ΠΏΠΎ ΠΈΠΊΠΎΠ½ΠΊΠ΅ Π² ΠΎΠ±Π»Π°ΡΡΠΈ ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠΉ ΠΈ Π²ΡΠ±ΡΠ°Π² "ΠΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π·Π°ΠΏΠΈΡΡ". Π’Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΊΠ»ΠΈΠΊΠ½ΡΡΡ ΡΡΠ΅Π΄Π½Π΅ΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡΡΠΈ ΠΏΠΎ ΠΈΠΊΠΎΠ½ΠΊΠ΅ Π·Π°ΠΏΠΈΡΠΈ (Π½ΠΎ ΡΡΠ° ΡΡΠ½ΠΊΡΠΈΡ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π½Π΅ Π½Π° Π²ΡΠ΅Ρ
ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°Ρ
).
ΠΠΎΠΆΠ½ΠΎ Π²ΡΠ±ΡΠ°ΡΡ ΠΈΡΡΠΎΡΠ½ΠΈΠΊ Π°ΡΠ΄ΠΈΠΎΠ²Ρ
ΠΎΠ΄Π° ΠΈΠ· ΡΠΏΠΈΡΠΊΠ° Π΄ΠΎΡΡΡΠΏΠ½ΡΡ
ΡΡΡΡΠΎΠΉΡΡΠ².
Π’Π°ΠΊΠΆΠ΅ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π·Π°Π΄Π°ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ, ΠΏΡΠΎΡΡΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ² ΠΈΡ
Π² ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ΅ β ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΡΠΎΡ
ΡΠ°Π½ΠΈΡ ΠΈΡ
Π΄Π»Ρ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π³ΠΎ Π·Π°ΠΏΡΡΠΊΠ°.
ΠΡΠ½ΠΎΠ²Π°Π½ΠΎ Π½Π° Green Recorder, ΠΏΠ΅ΡΠ΅ΠΏΠΈΡΠ°Π½ΠΎ Π½Π° Rust Ρ ΡΠ»ΡΡΡΠ΅Π½ΠΈΡΠΌΠΈ.
https://github.com/xlmnxp/blue-recorder
π @rust_lib
2 230
π¦ Zero-cost abstractions β ΠΌΠΈΡ ΠΈΠ»ΠΈ ΠΌΠ°Π³ΠΈΡ?
ΠΠ΄Π½Π° ΠΈΠ· Π³Π»Π°Π²Π½ΡΡ
ΡΠΈΡΠ΅ΠΊ Rust β zero-cost abstractions. ΠΠ²ΡΡΠΈΡ ΠΊΡΡΡΠΎ, Π½ΠΎ ΡΡΠΎ ΡΡΠΎ Π½Π° Π΄Π΅Π»Π΅?
π¦ ΠΠΎΠ³Π΄Π° ΡΡ ΠΏΠΈΡΠ΅ΡΡ Π°Π±ΡΡΡΠ°ΠΊΡΠ½ΡΠΉ ΠΊΠΎΠ΄ (Π΄ΠΆΠ΅Π½Π΅ΡΠΈΠΊΠΈ, ΠΈΡΠ΅ΡΠ°ΡΠΎΡΡ, ΡΡΠ΅ΠΉΡΡ), ΡΡ ΠΎΠ±ΡΡΠ½ΠΎ ΠΏΠ»Π°ΡΠΈΡΡ ΡΠ΅Π½ΠΎΠΉ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ. ΠΠΎ Π½Π΅ Π² Rust.
π§ Rust-ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ (LLVM) Π½Π° ΡΡΠ°ΠΏΠ΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ ΠΌΠΎΠ½ΠΎΠ½ΠΈΠ·ΠΈΡΡΠ΅Ρ (ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΠ΅Ρ) ΠΊΠΎΠ΄ β ΠΏΡΠ΅Π²ΡΠ°ΡΠ°Π΅Ρ ΠΎΠ±ΠΎΠ±ΡΡΠ½Π½ΡΠ΅ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΈ Π² ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠ΅, Π° Π½Π΅Π½ΡΠΆΠ½ΡΠ΅ β Π²ΡΠΊΠΈΠ΄ΡΠ²Π°Π΅Ρ. Π ΠΈΡΠΎΠ³Π΅ ΡΠ²ΠΎΠΈ Π°Π±ΡΡΡΠ°ΠΊΡΠΈΠΈ Π½Π΅ ΡΠΎΡΠΌΠΎΠ·ΡΡ, Π° ΠΊΠΎΠ΄ ΠΎΡΡΠ°ΡΡΡΡ ΡΠΈΡΠ°Π΅ΠΌΡΠΌ.
ΠΡΠΈΠΌΠ΅Ρ:
fn square<T: Copy + std::ops::Mul<Output = T>>(x: T) -> T {
x * x
}
Π’Π°ΠΊΠΎΠΉ ΠΊΠΎΠ΄ ΠΏΡΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ ΠΎΠ±ΡΡΠ½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ Π΄Π»Ρ i32, f64, ΠΈ ΡΠ°ΠΊ Π΄Π°Π»Π΅Π΅ β Π±Π΅Π· ΠΎΠ²Π΅ΡΡ
Π΅Π΄Π°.
β‘οΈ Rust Π΄Π°ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΠΈΡΠ°ΡΡ Π²ΡΡΠ°Π·ΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΠΊΠΎΠ΄ Π±Π΅Π· ΡΡΡΠ°Ρ
Π° ΠΏΠΎΡΠ΅ΡΡΡΡ Π² ΠΏΠ΅ΡΡΠΎΡΠΌΠ°Π½ΡΠ΅. ΠΠΌΠ΅Π½Π½ΠΎ ΠΏΠΎΡΡΠΎΠΌΡ ΠΎΠ½ ΡΡΠ°Π» Π»ΡΠ±ΠΈΠΌΡΠ΅ΠΌ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΡ
ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ², ΠΏΠΈΡΡΡΠΈΡ
ΠΈ ΠΏΠΎΠ΄ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΡ, ΠΈ ΠΏΠΎΠ΄ Π²Π΅Π±.
π§© Π ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡ zero-cost ΠΏΠΎΠ΄Ρ
ΠΎΠ΄Ρ Π² ΡΠ²ΠΎΡΠΌ ΠΊΠΎΠ΄Π΅? ΠΠ΅Π»ΠΈΡΡ ΠΏΡΠΈΠΌΠ΅ΡΠ°ΠΌΠΈ Π² ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΡΡ
!
π @rust_lib2 230
βοΈΠ£ΠΆΠ΅ ΡΠ°Π±ΠΎΡΠ°Π΅ΡΠ΅ Ρ Rust, Π½ΠΎ Ρ
ΠΎΡΠΈΡΠ΅ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ Ρ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΡΠ·ΡΠΊΠ°ΠΌΠΈ? ΠΠ»ΠΈ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΡΠ΅ΡΠ΅ΡΡ, ΠΊΠ°ΠΊ ΡΡΡΡΠΎΠ΅Π½ ΠΏΡΠΎΡΠ΅ΡΡ ΡΠ±ΠΎΡΠΊΠΈ ΠΈ Π»ΠΈΠ½ΠΊΠΎΠ²ΠΊΠΈ Π² ΡΡΠΎΠΌ ΡΠ·ΡΠΊΠ΅?
πΠΠ° ΠΎΡΠΊΡΡΡΠΎΠΌ Π²Π΅Π±ΠΈΠ½Π°ΡΠ΅ 24 Π°ΠΏΡΠ΅Π»Ρ Π² 20:00 ΠΌΡΠΊ ΠΌΡ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ ΡΠ°Π·Π±Π΅ΡΠ΅ΠΌ, ΠΊΠ°ΠΊ ΡΠΎΠ±ΠΈΡΠ°ΡΡ ΠΈ Π»ΠΈΠ½ΠΊΠΎΠ²Π°ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π² Rust, ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Rust-Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π² Π΄ΡΡΠ³ΠΈΡ
ΡΠ·ΡΠΊΠ°Ρ
, Π° ΡΠ°ΠΊΠΆΠ΅ ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅ΠΌ Π‘ΠΈ ABI (Application Binary Interface). ΠΡ ΠΏΠΎΠ»ΡΡΠΈΡΠ΅ Π·Π½Π°Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠΌΠΎΠ³ΡΡ Π²Π°ΠΌ ΠΏΠΎΠ²ΡΡΠΈΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ Π²Π°ΡΠΈΡ
ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ² ΠΈ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠΎΠ²Π°ΡΡ Rust Π² ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΡ.
π¨βπ»Π£ΡΠΎΠΊ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠ»Π΅Π·Π΅Π½ Π²ΡΠ΅ΠΌ, ΠΊΡΠΎ Ρ
ΠΎΡΠ΅Ρ ΡΠ³Π»ΡΠ±ΠΈΡΡ ΡΠ²ΠΎΠΈ Π·Π½Π°Π½ΠΈΡ Π² Rust, ΠΏΠΎΠ²ΡΡΠΈΡΡ ΠΊΠ²Π°Π»ΠΈΡΠΈΠΊΠ°ΡΠΈΡ ΠΈ Π½Π°Π²ΡΠΊΠΈ ΡΠ°Π±ΠΎΡΡ Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΠΌΠΈ ΠΈ ΡΠΈΡΡΠ΅ΠΌΠ°ΠΌΠΈ. ΠΡ ΡΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΠ΅ Π·Π½Π°Π½ΠΈΡ Π² ΡΠ΅Π°Π»ΡΠ½ΡΡ
ΠΏΡΠΎΠ΅ΠΊΡΠ°Ρ
.
πΠΡΠΈΡΠΎΠ΅Π΄ΠΈΠ½ΡΠΉΡΠ΅ΡΡ ΠΊ ΠΎΡΠΊΡΡΡΠΎΠΌΡ Π²Π΅Π±ΠΈΠ½Π°ΡΡ ΠΈ ΠΏΠΎΠ»ΡΡΠΈΡΠ΅ ΡΠΊΠΈΠ΄ΠΊΡ Π½Π° Π±ΠΎΠ»ΡΡΠΎΠ΅ ΠΎΠ±ΡΡΠ΅Π½ΠΈΠ΅ Β«Rust Developer. ProfessionalΒ»: https://vk.cc/cKVaG7
Π Π΅ΠΊΠ»Π°ΠΌΠ°. ΠΠΠ Β«ΠΡΡΡ ΠΎΠ½Π»Π°ΠΉΠ½-ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅Β», ΠΠΠ Π 1177746618576
2 230
π§΅ ΠΠΎΡΠ΅ΠΌΡ
.clone() Π² Rust β Π½Π΅ Π²ΡΠ΅Π³Π΄Π° Π·Π»ΠΎ (ΠΈ ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ Π²ΡΠ΅Π΄Π΅Π½)
ΠΠ½ΠΎΠ³ΠΈΠ΅ Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ Π² Rust Π±ΡΡΡΡΠΎ ΡΡΠ²Π°ΠΈΠ²Π°ΡΡ: Β«.clone() β ΡΡΠΎ ΠΏΠ»ΠΎΡ
ΠΎΒ». Π ΠΏΡΠ°Π²Π΄Π°, Π΅ΡΠ»ΠΈ Π±ΡΠΎΡΠ°ΡΡΡΡ ΠΊΠ»ΠΎΠ½ΠΈΡΠΎΠ²Π°ΡΡ Π²ΡΡ ΠΏΠΎΠ΄ΡΡΠ΄, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΊΡΠ°ΡΠΈΠ²ΡΠΉ, Π½ΠΎ ΡΠΎΡΠΌΠΎΠ·Π½ΠΎΠΉ ΠΊΠΎΠ΄. ΠΠΎ Π²Π°ΠΆΠ½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡΡ, ΠΏΠΎΡΠ΅ΠΌΡ .clone() Π²ΡΠ·ΡΠ²Π°Π΅Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, ΠΈ ΠΊΠΎΠ³Π΄Π° Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΠΏΡΠ°Π²Π΄Π°Π½ΠΎ.
π Π§ΡΠΎ Π΄Π΅Π»Π°Π΅Ρ .clone()?
ΠΠ΅ΡΠΎΠ΄ .clone() ΠΊΠΎΠΏΠΈΡΡΠ΅Ρ Π΄Π°Π½Π½ΡΠ΅, ΡΠΎΠ·Π΄Π°Π²Π°Ρ Π½ΠΎΠ²ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π² ΠΏΠ°ΠΌΡΡΠΈ. ΠΡΠΎ Π½Π΅ ΠΏΡΠΎΡΡΠΎ ΠΊΠΎΠΏΠΈΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ β ΡΡΠΎ Π³Π»ΡΠ±ΠΎΠΊΠΎΠ΅ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅. Π’ΠΎ Π΅ΡΡΡ:
let a = String::from("hello");
let b = a.clone(); // ΡΠ΅ΠΏΠ΅ΡΡ Ρ Π½Π°Ρ Π΄Π²Π° ΡΠ°Π·Π½ΡΡ
`String`
ΠΠ»Ρ ΠΏΡΠΎΡΡΡΡ
ΡΠΈΠΏΠΎΠ² (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, i32, bool, char) .clone() Π²ΠΎΠΎΠ±ΡΠ΅ Π½Π΅ Π½ΡΠΆΠ΅Π½ β ΠΎΠ½ΠΈ Copy ΠΈ Π΄ΡΠ±Π»ΠΈΡΡΡΡΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ.
π© ΠΠΎΠ³Π΄Π° .clone() β ΡΠΈΠ³Π½Π°Π» ΡΡΠ΅Π²ΠΎΠ³ΠΈ
ΠΡΠ»ΠΈ Π²Ρ ΡΠ°ΡΡΠΎ ΠΏΠΈΡΠ΅ΡΠ΅ .clone(), ΡΡΠΎΠ±Ρ Β«Π·Π°ΡΠΊΠ½ΡΡΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΒ», ΡΠΊΠΎΡΠ΅Π΅ Π²ΡΠ΅Π³ΠΎ, Ρ Π²Π°Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Ρ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ΠΌ Π²Π»Π°Π΄Π΅Π½ΠΈΡ ΠΈ Π·Π°ΠΈΠΌΡΡΠ²ΠΎΠ²Π°Π½ΠΈΡ. ΠΡΠΈΠΌΠ΅Ρ:
fn takes_ownership(s: String) { /* ... */ }
let s = String::from("data");
takes_ownership(s.clone()); // ΡΠ°Π±ΠΎΡΠ°Π΅Ρ, Π½ΠΎ...
takes_ownership(s); // Π½Π΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π±Π΅Π· `.clone()`
ΠΠ΄Π΅ΡΡ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½Π΅Π΅ Π·Π°Π΄ΡΠΌΠ°ΡΡΡΡ: Π° Π½ΡΠΆΠ½ΠΎ Π»ΠΈ Π²ΠΎΠΎΠ±ΡΠ΅ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡ Π²Π»Π°Π΄Π΅Π½ΠΈΠ΅? ΠΠ»ΠΈ Π»ΡΡΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΡΠ»ΠΊΡ:
fn takes_reference(s: &str) { /* ... */ }
let s = String::from("data");
takes_reference(&s);
β
ΠΠΎΠ³Π΄Π° .clone() β Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΠΎ
- ΠΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ Ρ
ΠΎΡΠΈΡΠ΅ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΊΠΎΠΏΠΈΡ, ΠΈ ΡΡΠΎ ΠΎΠΏΡΠ°Π²Π΄Π°Π½ΠΎ Π»ΠΎΠ³ΠΈΠΊΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.
- Π’ΠΈΠΏ Π΄Π΅ΡΡΠ² Π² ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ (Arc, Rc, PathBuf β Π² ΡΠ°Π·ΡΠΌΠ½ΡΡ
ΠΏΡΠ΅Π΄Π΅Π»Π°Ρ
).
- ΠΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²Π°Π»ΠΈ β ΠΈ ΡΠ²ΠΈΠ΄Π΅Π»ΠΈ, ΡΡΠΎ ΡΡΠΎ Π½Π΅ ΡΠ·ΠΊΠΎΠ΅ ΠΌΠ΅ΡΡΠΎ.
- ΠΡ ΡΠ°Π±ΠΎΡΠ°Π΅ΡΠ΅ Ρ immutability Π² ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΠΌ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ΅ β ΡΠ°ΠΌ ΠΊΠ»ΠΎΠ½Ρ ΡΠ°ΡΡΠΎ ΠΎΠΏΡΠ°Π²Π΄Π°Π½Ρ.
π§ ΠΡΠ²ΠΎΠ΄
.clone() β ΡΡΠΎ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ. ΠΠ½ Π½Π΅ Β«Π·Π»ΠΎΒ», Π° ΠΏΡΠΎΡΡΠΎ ΡΠΈΠ³Π½Π°Π»: Π·Π΄Π΅ΡΡ ΡΡΠΎΠΈΡ ΠΏΠΎΠ΄ΡΠΌΠ°ΡΡ. ΠΡΠ»ΠΈ Π²Ρ ΠΊΠ»ΠΎΠ½ΠΈΡΡΠ΅ΡΠ΅ ΡΠ°Π΄ΠΈ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ Β«Π½Π΅ ΡΡΠ³Π°Π»ΡΡΒ», ΡΠΊΠΎΡΠ΅Π΅ Π²ΡΠ΅Π³ΠΎ, Π²Ρ ΠΏΡΠΎΠΏΡΡΠΊΠ°Π΅ΡΠ΅ ΡΠ°Π½Ρ Π½Π°ΠΏΠΈΡΠ°ΡΡ Π±ΠΎΠ»Π΅Π΅ ΠΈΠ΄ΠΈΠΎΠΌΠ°ΡΠΈΡΠ½ΡΠΉ ΠΈ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΡΠΉ Rust-ΠΊΠΎΠ΄.
π @rust_lib2 230
Π‘ΠΏΠΈΡΠΎΠΊ ΡΠ΅ΡΡΡΡΠΎΠ² Π΄Π»Ρ ΠΈΠ·ΡΡΠ΅Π½ΠΈΡ Rust β ΠΠΎΡΠΎΠΆΠ½Π°Ρ ΠΊΠ°ΡΡΠ° ΠΎΡ Π½ΠΎΠ²ΠΈΡΠΊΠ° Π΄ΠΎ ΠΏΡΠΎΠ΄Π²ΠΈΠ½ΡΡΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ.
https://github.com/ImplFerris/LearnRust
π @rust_lib
2 230
π ΠΠ΅ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΠΎΠ΅ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΠΏΠΎ ΡΠΊΠΎΡΠΈΡΡΠ΅ΠΌΠ΅ Rust
https://blessed.rs/crates
https://github.com/nicoburns/blessed-rs
π @rust_lib
2 230
ΠΠΎΠ»Π½ΡΠΉ ΠΊΡΡΡ Rust ΠΎΡ Google π¦
ΠΡΠΎ ΡΡΠ΅Π±Π½ΡΠΉ ΠΊΡΡΡ ΠΏΠΎ ΡΠ·ΡΠΊΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Rust, ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½Π½ΡΠΉ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ Android Π² Google.
ΠΠ½ ΠΈΠ·Π½Π°ΡΠ°Π»ΡΠ½ΠΎ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ°Π»ΡΡ Π΄Π»Ρ Π²Π½ΡΡΡΠ΅Π½Π½Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π΄Π»Ρ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² Android, Π½ΠΎ ΡΠ΅ΠΏΠ΅ΡΡ ΠΎΡΠΊΡΡΡ Π΄Π»Ρ Π²ΡΠ΅Ρ
.
ΠΡΡΡ ΠΎΡ
Π²Π°ΡΡΠ²Π°Π΅Ρ:
- ΠΡΠ½ΠΎΠ²Ρ ΡΠ·ΡΠΊΠ° Rust
- Π Π°Π±ΠΎΡΠ° Ρ ΠΏΠ°ΠΌΡΡΡΡ ΠΈ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡΡ
- Π‘ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΠΈ (ΠΈΡΠ΅ΡΠ°ΡΠΎΡΡ, async, crate-ΡΠΊΠΎΡΠΈΡΡΠ΅ΠΌΠ° ΠΈ Ρ.Π΄.)
- ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Rust Π΄Π»Ρ Android ΠΈ WebAssembly
- ΠΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠ΅ ΡΠΏΡΠ°ΠΆΠ½Π΅Π½ΠΈΡ ΠΈ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΡ
ΠΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠ°ΠΊ Π² Π²ΠΈΠ΄Π΅ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»Π°, ΡΠ°ΠΊ ΠΈ Π΄Π»Ρ ΠΏΡΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΎΠ±ΡΡΠ°ΡΡΠΈΡ
ΡΠ΅ΠΌΠΈΠ½Π°ΡΠΎΠ².
ΠΠΎΠ΄Ρ
ΠΎΠ΄ΠΈΡ Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ², Π·Π½Π°ΠΊΠΎΠΌΡΡ
Ρ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π½Π° C/C++.
https://github.com/google/comprehensive-rust
π @rust_lib
2 230
5 Π°Π»Π³ΠΎΡΠΈΡΠΌΠΎΠ² Π½Π° Rust, ΠΊΠΎΡΠΎΡΡΠ΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π·Π½Π°ΡΡ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ
ΠΡΠΎ-ΡΠΎ ΠΏΡΠΈΡ
ΠΎΠ΄ΠΈΡ Π² Rust ΡΠ°Π΄ΠΈ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ Ρ ΠΏΠ°ΠΌΡΡΡΡ, ΠΊΡΠΎ-ΡΠΎ β ΡΠ°Π΄ΠΈ ΡΠΊΠΎΡΠΎΡΡΠΈ, Π° ΠΊΡΠΎ-ΡΠΎ ΠΏΡΠΎΡΡΠΎ ΠΏΠΎΡΠΎΠΌΡ, ΡΡΠΎ Β«Π²ΡΠ΅ Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΡΠ΅ ΡΠ·ΡΠΊΠΈ ΡΠΆΠ΅ ΠΏΠΎΠΏΡΠΎΠ±ΠΎΠ²Π°Π»Β». ΠΠΎ ΡΡΠΎ Π±Ρ Π½ΠΈ ΠΏΡΠΈΠ²Π΅Π»ΠΎ Π²Π°Ρ Π² ΡΡΠΎΡ ΡΠ³ΠΎΠ»ΠΎΠΊ Π½ΠΈΠ·ΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²ΠΎΠΉ ΠΌΠΎΡΠΈ, Π±Π΅Π· Ρ
ΠΎΡΠΎΡΠ΅Π³ΠΎ Π·Π½Π°Π½ΠΈΡ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΎΠ² Π΄Π°Π»Π΅ΠΊΠΎ Π½Π΅ ΡΠ΅Π΄Π΅ΡΡ.
ΠΠΈΡΠ°ΡΡ ΠΊΠΎΠ΄ Π½Π° Rust β ΡΡΠΎ Π½Π΅ ΠΏΡΠΎΡΡΠΎ Π±ΠΎΡΠΎΡΡΡΡ Ρ borrow checker, Π½ΠΎ ΠΈ Π΄Π΅Π»Π°ΡΡ Π΅Π³ΠΎ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΡΠΌ. ΠΠ΅Π΄Ρ Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ ΡΠ·ΡΠΊ Π½Π΅ ΡΠΏΠ°ΡΠ΅Ρ ΠΎΡ ΡΠΎΡΠΌΠΎΠ·ΠΎΠ², Π΅ΡΠ»ΠΈ Π°Π»Π³ΠΎΡΠΈΡΠΌΡ Π²ΡΠ±ΡΠ°Π½Ρ Π½Π΅ΡΠ΄Π°ΡΠ½ΠΎ.
Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΌΡ ΡΠ°Π·Π±Π΅ΡΠ΅ΠΌ ΠΏΡΡΡ ΡΡΠ½Π΄Π°ΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΡΡ
Π°Π»Π³ΠΎΡΠΈΡΠΌΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Π²Π°ΠΆΠ½Ρ Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π½Π° Rust. ΠΠ½ΠΈ ΠΏΠΎΠΌΠΎΠ³ΡΡ Π»ΡΡΡΠ΅ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡΡ ΡΠ°Π±ΠΎΡΡ Ρ Π΄Π°Π½Π½ΡΠΌΠΈ, ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΈ ΠΏΠΈΡΠ°ΡΡ ΠΊΠΎΠ΄, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π΅ ΡΡΡΠ΄Π½ΠΎ ΠΏΠΎΠΊΠ°Π·Π°ΡΡ.
https://habr.com/ru/companies/beget/articles/887160/
π @rust_lib
2 230
Dioxus
ΠΡΠΎ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΉ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ UI Π½Π° Rust, ΠΏΠΎΡ
ΠΎΠΆΠΈΠΉ Π½Π° React, Π½ΠΎ Ρ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π°ΠΌΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΈ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡΡ Rust. ΠΠ½ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΡΠ΅Π½Π΄Π΅ΡΠΈΠ½Π³ Π½Π° Web, Desktop, Mobile ΠΈ Π΄Π°ΠΆΠ΅ TUI.
https://github.com/DioxusLabs
π @rust_lib
2 230
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ OpenTelemetry Π² Rust
Π ΡΡΠ°ΡΡΠ΅ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½ΠΎ, ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ OpenTelemetry Π² Rust Π΄Π»Ρ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³Π° ΠΈ ΡΡΠ°ΡΡΠΈΡΠΎΠ²ΠΊΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. OpenTelemetry β ΡΡΠΎ ΠΌΠΎΡΠ½ΡΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π΄Π»Ρ ΡΠ±ΠΎΡΠ° ΠΈ Π°Π½Π°Π»ΠΈΠ·Π° Π΄Π°Π½Π½ΡΡ
ΠΎ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°ΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π·Π°ΠΏΡΠΎΡΠΎΠ² Π² ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ
ΡΠΈΡΡΠ΅ΠΌΠ°Ρ
.
Π ΡΡΠ°ΡΡΠ΅ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ, ΠΊΠ°ΠΊ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠΎΠ²Π°ΡΡ OpenTelemetry Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Rust, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ tracing ΠΈ ΡΠΊΡΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ Π΄Π°Π½Π½ΡΠ΅ Π² Jaeger. ΠΡΠΈΠ²Π΅Π΄Π΅Π½Ρ ΠΏΡΠΈΠΌΠ΅ΡΡ ΠΊΠΎΠ΄Π°, ΠΎΠ±ΡΡΡΠ½ΡΡΡΠΈΠ΅ Π½Π°ΡΡΡΠΎΠΉΠΊΡ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡΠ΅ΠΉΡΠΎΠ² Π΄Π»Ρ Π΄ΠΈΠ°Π³Π½ΠΎΡΡΠΈΠΊΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌ ΠΈ ΡΠ»ΡΡΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ.
ΠΠ°Π·ΠΎΠ²ΡΠΉ ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ Ρ OpenTelemetry ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΡΡΡΠΎΠΈΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ
opentelemetry_otlp. ΠΠ°ΡΠ΅ΠΌ ΡΠΎΠ·Π΄Π°ΡΡΡΡ ΡΠ»ΠΎΠΉ tracing_opentelemetry, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠΈΠΉ ΡΡΠΎΡ ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ, ΠΈ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΡΡΡ Π² ΠΏΠΎΠ΄ΠΏΠΈΡΡΠΈΠΊ ΡΡΠ°ΡΡΠΈΡΠΎΠ²ΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΠ΅ΡΡΡ.
// note that here, localhost:4318 is the default HTTP address
// for a local OpenTelemetry collector
let tracer = opentelemetry_otlp
::new_pipeline()
.tracing()
.with_exporter(opentelemetry_otlp::new_exporter().http().with_endpoint("localhost:4318"))
.install_batch(Tokio)
.unwrap();
// log level filtering here
let filter_layer = EnvFilter::try_from_default_env()
.or_else(|_| EnvFilter::try_new("info"))
.unwrap();
// fmt layer - printing out logs
let fmt_layer = fmt::layer().compact();
// turn our OTLP pipeline into a tracing layer
let otel_layer = tracing_opentelemetry::layer().with_tracer(tracer);
// initialise our subscriber
subscriber
.with(filter_layer)
.with(fmt_layer)
.with(otel_layer)
// The error layer needs to go after the otel_layer, because it needs access to the
// otel_data extension that is set on the span in the otel_layer.
.with(ErrorTracingLayer::new())
.init();
https://shuttle.rs/blog/2024/04/10/using-opentelemetry-rust
π @rust_lib2 230
ΠΠΈΡΠ΅ΠΌ ΠΏΡΠΎΡΡΠΎΠΉ Π΄ΡΠ°ΠΉΠ²Π΅Ρ Π½Π° Rust
ΠΠΎΠΏΡΠ»ΡΡΠ½ΠΎΡΡΡ Rust Π½Π΅ΡΠΊΠ»ΠΎΠ½Π½ΠΎ ΡΠ°ΡΡΡΡ, Π° Ρ Π½Π΅ΠΉ ΠΈ ΡΠΎΠΏΡΡΡΡΠ²ΡΡΡΠ°Ρ ΡΠΊΠΎΡΠΈΡΡΠ΅ΠΌΠ°. Π ΠΎΠ½ΠΎ Π½Π΅ ΡΠ΄ΠΈΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ, Π²Π΅Π΄Ρ ΡΡΠΎ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠΉ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΉ ΡΠ·ΡΠΊ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡ ΠΏΠ°ΠΌΡΡΠΈ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΠΉ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Π½Π° ΡΡΠ°ΠΏΠ΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡ ΠΌΠΎΡΠ½ΡΡ ΠΈ Π±ΠΎΠ³Π°ΡΡΡ ΡΠΈΡΡΠ΅ΠΌΡ ΡΠ±ΠΎΡΠΊΠΈ (cargo), Π° ΡΠ°ΠΊΠΆΠ΅ Π²ΡΡ Π±ΠΎΠ»ΡΡΠ΅ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ
ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² (ΠΊΡΠ΅ΠΉΡΠΎΠ²).
Π ΡΠ²ΠΎΠ΅ΠΉ ΠΏΠΎΠ²ΡΠ΅Π΄Π½Π΅Π²Π½ΠΎΠΉ ΡΠ°Π±ΠΎΡΠ΅ Ρ ΠΏΠΎ-ΠΏΡΠ΅ΠΆΠ½Π΅ΠΌΡ ΠΏΡΠΈΠ΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΡ C++, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΎΡΠ½ΠΎΠ²Π½Π°Ρ Π΅Ρ ΡΠ°ΡΡΡ ΡΠ²ΡΠ·Π°Π½Π° Ρ Π½ΠΈΠ·ΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²ΡΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΠΈΡΡΠ΅ΠΌ ΠΈ ΡΠ΄ΡΠ°, Π° ΠΈΠ· ΡΡΠΎΠ³ΠΎ ΡΠ·ΡΠΊΠ° Π»Π΅Π³ΠΊΠΎ Π·Π°Π΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°ΡΡ Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡΠΉ Π½Π° Π‘ Windows API ΠΈ COM API.
Rust β ΡΡΠΎ ΡΠ·ΡΠΊ Π΄Π»Ρ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΡΠΎ Π΅ΡΡΡ ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ ΡΠΏΡΠ°Π²Π»ΡΡΡΡΡ Ρ ΡΠ΅ΠΌΠΈ ΠΆΠ΅ Π·Π°Π΄Π°ΡΠ°ΠΌΠΈ, ΡΡΠΎ ΠΈ C/C++. ΠΡΠ½ΠΎΠ²Π½ΠΎΠ΅ Π½Π΅ΡΠ΄ΠΎΠ±ΡΡΠ²ΠΎ ΠΏΡΠΈ ΡΡΠΎΠΌ ΡΠΎΠ·Π΄Π°ΡΡ Π³ΡΠΎΠΌΠΎΠ·Π΄ΠΊΠΈΠΉ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ, Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΡΠΉ Π΄Π»Ρ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ ΡΠΈΠΏΠΎΠ² Π‘ Π² ΡΠΈΠΏΡ Rust. ΠΠΎ ΡΡΠΎ Π½Π΅ΡΠ΄ΠΎΠ±ΡΡΠ²ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠ΅ΠΎΠ΄ΠΎΠ»Π΅ΡΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΏΠΎΠ΄ΠΎΠ±Π°ΡΡΠΈΠ΅ ΠΎΠ±ΡΡΡΠΊΠΈ ΠΈ ΠΌΠ°ΠΊΡΠΎΡΡ.
ΠΠΎΡΠΎΡΠ΅ Π³ΠΎΠ²ΠΎΡΡ, Ρ ΡΠ΅ΡΠΈΠ» ΠΏΠΎΠΏΡΠΎΠ±ΠΎΠ²Π°ΡΡ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΠΏΡΠΎΡΡΠΎΠΉ ΠΈ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΉ Π΄ΡΠ°ΠΉΠ²Π΅Ρ WDM. ΠΡΠΎ Π±ΡΠ΄Π΅Ρ Rust-Π²Π΅ΡΡΠΈΡ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ° Β«BoosterΒ», ΠΎ ΠΊΠΎΡΠΎΡΠΎΠΌ Ρ ΠΏΠΈΡΡ Π² ΡΠ²ΠΎΠ΅ΠΉ ΠΊΠ½ΠΈΠ³Π΅ (Windows Kernel Programming), ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠ΅Π³ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ ΠΏΡΠΈΠΎΡΠΈΡΠ΅Ρ Π»ΡΠ±ΠΎΠ³ΠΎ ΠΏΠΎΡΠΎΠΊΠ° Π½Π° Π»ΡΠ±ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅.
https://habr.com/ru/companies/ruvds/articles/882474/
π @rust_lib
2 230
ΠΠΈΠ΄Π΅ΠΎ ΠΎ Rust Traits
0:00 - Introduction
0:39 - Visual Example
2:47 - Using Traits in Rust
4:56 - Using Traits with Functions
9:06 - Conditionally implement functions with trait bounds
ΠΈΡΡΠΎΡΠ½ΠΈΠΊ
π @rust_lib
2 230
MinDNS
ΠΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΡΠΉ DNS-ΡΠ΅ΡΠ²Π΅Ρ, Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡΠΉ Π½Π° Rust, Ρ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ ΠΏΡΠ°Π²ΠΈΠ» ΠΈ ΠΆΡΡΠ½Π°Π»ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ.
https://github.com/sammwyy/mindns
π @rust_lib
2 230
Π£ΡΠ΅Π±Π½ΠΎΠ΅ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΠΏΠΎ ΠΏΡΠΎΠ΅ΠΊΡΡ Π½Π° Rust β Π‘Π΅ΡΠ²Π΅Ρ Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Warp + JWT
Π ΡΡΠΎΠΌ ΠΊΡΡΡΠ΅ Π²Ρ ΡΠ·Π½Π°Π΅ΡΠ΅, ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Rust Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠ΅ΡΠ²Π΅ΡΠ° Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ. ΠΡΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎΠ΅ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΠΏΠΎ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΌΠΈ Π΄Π°Π½Π½ΡΠΌΠΈ, ΡΡΡΡΠΊΡΡΡΠ΅ ΠΈ Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΡΠΎΠΊΠ΅Π½ΠΎΠ². ΠΡΠΎΠ±ΠΎΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΡΠ΄Π΅Π»ΡΠ΅ΡΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ΅ ΠΎΡΠΈΠ±ΠΎΠΊ, Π²ΠΎΠΏΡΠΎΡΠ°ΠΌ, ΡΠ²ΡΠ·Π°Π½Π½ΡΠΌ Ρ JWT, ΠΈ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΌ ΡΠ΅ΡΠ΅Π½ΠΈΡΠΌ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Π½ΡΡ
ΠΏΡΠΎΠ±Π»Π΅ΠΌ. Π Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΠ΅ ΠΊΡΡΡΠ° Π²Π°Ρ ΠΆΠ΄Π΅Ρ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠ°Ρ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠ°ΡΠΈΡ, Π±Π»Π°Π³ΠΎΠ΄Π°ΡΡ ΠΊΠΎΡΠΎΡΠΎΠΉ Π²Ρ ΠΏΠΎΠ»ΡΡΠΈΡΠ΅ Π³Π»ΡΠ±ΠΎΠΊΠΎΠ΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΠ° ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠΎΠΊΠ΅Π½ΠΎΠ² ΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌΠΈ Π² ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ
ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡ
.
0:00:00 Introduction and setup
0:06:42 Admin and user authentication
0:15:53 User data handling and roles
0:28:54 Introduction to user structures and attributes
0:45:41 Token management and claims analysis
1:01:48 Deep dive into roles and tokens
1:05:03 Error handling and permissions
1:14:58 Advanced error insights and JWT issues
1:29:19 Code analysis and issue resolution
1:31:24 Final touches and RS file exploration
1:34:50 Demo review and token creation
https://www.freecodecamp.org/news/rust-tutorial-authentication-server/
π @rust_lib
2 230
Rust: Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΡΠΉ ΠΏΠ°ΡΡΠΈΠ½Π³ Ρ Π½ΡΠ»Π΅Π²ΡΠΌ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ
Π ΠΌΠΈΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΈ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡ Π΄Π°Π½Π½ΡΡ
β ΡΡΠΎ Π΄Π²Π° Π²Π°ΠΆΠ½ΡΡ
Π°ΡΠΏΠ΅ΠΊΡΠ°, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ°ΡΡΠΎ Π½Π°Ρ
ΠΎΠ΄ΡΡΡΡ Π² ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠ΅. ΠΠ΄Π½Π°ΠΊΠΎ Rust ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅Ρ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΠ΅ ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΡΠ΅ ΠΈ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΡΠ΅ ΠΏΠ°ΡΡΠ΅ΡΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ zero-copy ΡΠ΅Ρ
Π½ΠΈΠΊΡ. Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ Π°Π²ΡΠΎΡ Π΄Π΅Π»ΠΈΡΡΡ ΡΠ²ΠΎΠΈΠΌΠΈ Π½Π°Ρ
ΠΎΠ΄ΠΊΠ°ΠΌΠΈ ΠΈ ΡΠ°ΡΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, ΠΊΠ°ΠΊ Rust ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ ΠΈΠ·Π±ΡΡΠΎΡΠ½ΡΡ
Π°Π»Π»ΠΎΠΊΠ°ΡΠΈΠΉ ΠΏΠ°ΠΌΡΡΠΈ, ΡΠΎΡ
ΡΠ°Π½ΡΡ ΠΏΡΠΈ ΡΡΠΎΠΌ ΡΡΡΠΎΠ³ΡΡ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡ.
π Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ zero-copy ΠΏΠ°ΡΡΠΈΠ½Π³?
Zero-copy β ΡΡΠΎ ΡΠ΅Ρ
Π½ΠΈΠΊΠ° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Π΄Π°Π½Π½ΡΡ
Π±Π΅Π· ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ
ΠΊΠΎΠΏΠΈΠΉ Π² ΠΏΠ°ΠΌΡΡΠΈ. Π Rust ΡΡΠΎ Π΄ΠΎΡΡΠΈΠ³Π°Π΅ΡΡΡ Π·Π° ΡΡΡΡ ΠΏΡΠΎΠ΄Π²ΠΈΠ½ΡΡΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ Π²Π»Π°Π΄Π΅Π½ΠΈΡ ΠΈ Π·Π°ΠΈΠΌΡΡΠ²ΠΎΠ²Π°Π½ΠΈΡ (ownership & borrowing). ΠΠΌΠ΅ΡΡΠΎ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π±Π°ΠΉΡΠΎΠ² Rust ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΡΡΠ»Π°ΡΡΡΡ Π½Π° Π΄Π°Π½Π½ΡΠ΅ Π½Π°ΠΏΡΡΠΌΡΡ, ΡΡΠΎ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΡΠΊΠΎΡΡΠ΅Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΡ.
https://itnext.io/rust-the-joy-of-safe-zero-copy-parsers-8c8581db8ab2
π @rust_lib
2 230
Xplorer β ΠΊΡΠ°ΡΠΈΠ²ΡΠΉ ΡΠ°ΠΉΠ»ΠΎΠ²ΡΠΉ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ, Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡΠΉ Π½Π° TypeScript ΠΈ Rust.
ΠΠ°ΡΡΡΠ°ΠΈΠ²Π°Π΅ΠΌΡΠΉ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΉ ΡΠ°ΠΉΠ»ΠΎΠ²ΡΠΉ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π½Π° Windows, GNU/Linux ΠΈ MacOS.
https://github.com/kimlimjustin/xplorer
π @rust_lib
