Librairie standart étendue pour Rust

Rust essaye de réduire au minimum sa librairie standard, et au contraire d'encourager l'usage de crates, contrairement à d'autres langages. Il pourrait donc donner accès à certains de ces crates.

Ce thread a pour but de recueillir les propositions de crates disponibles. Il faudrait donc qu'ils correspondent à des fonctionnalités qui sont accessibles directement dans la librairie standard d'autres langages, ou à des implémentations plus performantes de fonctionnalités déjà présentes dans la std de Rust.

hashbrown (https://crates.io/crates/hashbrown).

Il s'agit d'une implémentation efficace d'une table de hashage, vue que celle de la librairie standard est très lente (comparativement). En particulier, la fonction de hashage de la librairie standard est cryptographiquement sûre, ce qui n'est pas utile pour de l'algorithmique, mais assez cher.

June 25, 2021, 11:51 a.m. Edited on June 25, 2021, 12:11 p.m.

Salut !

Pour rand en effet on est en train de voir comment mettre la crate à disposition, au moins pour l'environnement de finale, où l'usage de l'aléatoire pour les IAs peut être utile au début.

Pour hashbrown, c'est l'implémentation utilisée par la stdlib de nos jours :

Since Rust 1.36, this is now the HashMap implementation for the Rust standard library.

Pour priority-queue, il faut qu'on réfléchisse plus, voir si ça vaut la peine de l'inclure :)

Edit: c'est mon avis personnel, je ne parle pas pour tout le staff Prologin, mais je ne pense pas qu'il soit nécessaire d'inclure des crates pour toutes les structures de données déjà implémentées dans la stdlib, même si certaines sont plus performantes. En C++ c'est la même chose, tout ce qui est dans la stdlib n'est pas toujours l'implem la plus performante, mais on ne s'embête pas à fournir des réimplémentations pour des structures de données.

Reply to the thread

You have to register or log in to post messages.