PostgreSQL La base de donnees la plus sophistiquee au monde.

Forums PostgreSQL.fr

Le forum officiel de la communauté francophone de PostgreSQL

Vous n'êtes pas identifié(e).

#1 20/09/2024 11:58:38

laurar
Membre

[Créer une extension Postgres en Rust] nouvelle série d'articles

Décidément, nos collègues DBA ont pris le goût des séries. wink


Celle-ci vient d'être lancée par Damien Clochard, qui a conçu les articles comme des mini-ateliers.


Voici le 1er, Créer une extension Postgres en Rust #1 - Un nouveau monde, dont les objectifs sont les suivants :


  - Initialiser un environnement de développement PGRX
  - Créer une extension minimaliste
  - Lancer l’extension dans une instance Postgres

Hors ligne

#2 01/10/2024 18:25:24

pifor
Membre

Re : [Créer une extension Postgres en Rust] nouvelle série d'articles

Mes commentaires:


Dans l'exemple cité, la manipulation de chaînes de caractères est  effectivement bien plus facile qu'en C. Mais il faut savoir qu'une chaîne en Rust est un vrai type de données qui utilise Unicode et peut se révéler plus difficile à manipuler que l'équivalent en C qui est seulement en ASCII par défaut. Par exemple, essayez de mettre en majuscule le premier caractère d'une chaîne String.


Comme pour l'exécutable "Hello World", l'extension "Hello World" en mode debug est particulièrement volumineuse:

$ ll target/debug
total 86224
drwxrwxr-x. 32 pierre pierre     4096 Sep 28 15:31 build
drwxrwxr-x.  2 pierre pierre    20480 Sep 28 15:36 deps
drwxrwxr-x.  2 pierre pierre        6 Sep 28 15:31 examples
drwxrwxr-x.  4 pierre pierre       71 Sep 28 15:31 incremental
-rw-rw-r--.  1 pierre pierre       75 Sep 28 15:31 libworld.d
-rw-rw-r--.  2 pierre pierre   995514 Sep 28 15:33 libworld.rlib
-rwxrwxr-x.  2 pierre pierre 42444168 Sep 28 15:33 libworld.so
-rwxrwxr-x.  2 pierre pierre 44807552 Sep 28 15:36 pgrx_embed_world
-rw-rw-r--.  1 pierre pierre      137 Sep 28 15:36 pgrx_embed_world.d
$ ll target/release
total 628
drwxrwxr-x. 38 pierre pierre   4096 Sep 28 15:35 build
drwxrwxr-x.  2 pierre pierre  20480 Sep 28 15:36 deps
drwxrwxr-x.  2 pierre pierre      6 Sep 28 15:35 examples
drwxrwxr-x.  2 pierre pierre      6 Sep 28 15:35 incremental
-rw-rw-r--.  1 pierre pierre     77 Sep 28 15:36 libworld.d
-rw-rw-r--.  2 pierre pierre 113690 Sep 28 15:36 libworld.rlib
-rwxrwxr-x.  2 pierre pierre 493264 Sep 28 15:36 libworld.so
$ 

Dernière modification par pifor (01/10/2024 18:27:42)


Pierre

Hors ligne

#3 03/10/2024 16:55:05

daamien
damien clochard

Re : [Créer une extension Postgres en Rust] nouvelle série d'articles

Bonjour,

Merci pour ce retour !

Cet article est le premier d'une série et la manipulation de chaines de caractère est un exemple initial assez simple. Les épisodes suivants devraient montrer d'autres usages où l'on profite de la richesse de l'écosystème Rust

Concernant les temps de compilation et la taille des binaires, effectiviement c'est l'explosion !

Pour comparaison, pour la version 2.0 de PostgreSQL Anonymizer écrite en Rust le binaire du module fait 5Mo alors que le module version 1 en C pesait quelques centaines de ko.

Je dis souvent que c'est le « prix de la sécurité » :-)

Hors ligne

Pied de page des forums