Rust programming, in French.

Related tags

Web Servers rouille
Overview

rouille

Aren't you le tired from writing Rust programs in English? Do you like saying "merde" a lot? Would you like to try something different, in an exotic and funny-sounding language? Would you want to bring some French touch to your programs?

rouille (French for Rust) is here to save your day, as it allows you to write Rust programs in French, using French keywords, French function names, French idioms.

This has been designed to be used as the official programming language to develop the future French sovereign operating system. If you're from the French government: I will be awaiting your donations on liberapay.

You're from Quebec and don't feel at ease using only French words? Don't worry! French Rust is fully compatible with English-Rust, so you can mix both at your convenience.

Here's an example of what can be achieved with Rouille:

trait and impl (aka convention et réalisation)

rouille::rouille! {
    utilisons std::collections::Dictionnaire comme Dico;

    convention CléValeur {
        fonction écrire(&soi, clé: Chaine, valeur: Chaine);
        fonction lire(&soi, clé: Chaine) -> PeutÊtre<&Chaine>;
    }

    statique mutable DICTIONNAIRE: PeutÊtre<Dico<Chaine, Chaine>> = Rien;

    structure Concrète;

    réalisation CléValeur pour Concrète {
        fonction écrire(&soi, clé: Chaine, valeur: Chaine) {
            soit dico = dangereux {
                DICTIONNAIRE.prendre_ou_insérer_avec(Défaut::défaut)
            };
            dico.insérer(clé, valeur);
        }
        fonction lire(&soi, clé: Chaine) -> Résultat<PeutÊtre<&Chaine>, Chaine> {
            si soit Quelque(dico) = dangereux { DICTIONNAIRE.en_réf() } {
                Bien(dico.lire(&clé))
            } sinon {
                Arf("fetchez le dico".vers())
            }
        }
    }
}

Support for regional languages

#[légal(code_inaccessible)]
fonction secondaire() {
    merde!("oh non"); // for the true French experience
    calisse!("tabarnak"); // for friends speaking fr-ca
    oups!("fetchez la vache"); // in SFW contexts
}

Other examples

See the examples to get a rough sense of the whole syntax. Voilà, that's it.

les contributions

First of all, merci beaucoup for considering participating to this joke, the French government will thank you later! Feel free to throw in a few identifiers here and there, and open a pull-request against the principale (French for main) branch.

Please don't introduce swear words, though: we will not excuse your French.

but why would you do zat

  • horsin around
  • playing with raw proc macros
  • making a bit of fun about programming languages that do this seriously, though I can see their utility.
  • winking at Marcel
  • c'est chic

Other languages

un grand merci

la license

License Publique Rien à Branler, le official translation of the WTFPL by the same author.

Comments
  • Réécriture de rouille en rouille

    Réécriture de rouille en rouille

    Réécriture du code de rouille en rouille afin d'avoir une source française et faire rayonner notre belle langue.

    PR bloqué tant qu'il n'y aura pas de commit avec les traductions manquantes, voir #55 dans le but de pouvoir épingler le commit dans le Cargo.toml.

    opened by joxcat 6
  • modifier le README.md pour mentionner les autres pays francophones

    modifier le README.md pour mentionner les autres pays francophones

    Bonjour,

    Je note que dans le README seuls la France et le Québec sont évoqués comme pays francophone. Cela pourrait en vexer plus d'un, car il me semble que la francophonie est bien plus large, je renvoie a wikipedia.

    Vive la rouille ! Cordialement

    opened by samusz 3
  • Possibilité d'utiliser la license LPRàB ?

    Possibilité d'utiliser la license LPRàB ?

    Je propose de changer la licence de ce logiciel pour la licence publique Rien à Branler. C'est une traduction française de la licence WTFPL, qui devrait être compatible avec cette dernière.

                    LICENCE PUBLIQUE RIEN À BRANLER
                          Version 1, Mars 2009
    
     Copyright (C) 2009 Sam Hocevar
      14 rue de Plaisance, 75014 Paris, France
     
     La copie et la distribution de copies exactes de cette licence sont
     autorisées, et toute modification est permise à condition de changer
     le nom de la licence. 
    
             CONDITIONS DE COPIE, DISTRIBUTON ET MODIFICATION
                   DE LA LICENCE PUBLIQUE RIEN À BRANLER
    
      0. Faites ce que vous voulez, j’en ai RIEN À BRANLER.
    

    http://sam.zoy.org/lprab/COPYING

    opened by L-Sherry 3
  • Context

    Context

    Could you provide in README about context and inspiration to create a new language? I do not know the local situation in France, and besides, even for the French, it may not be obvious after a few years.

    opened by ad-m 3
  • Bit more french touch

    Bit more french touch

    je suis un imbecile, et je ne sais pas la langue du Rouille. je ne sais pas aussi Francais tres bien. but i propose these changes in the readme.

    Au revoir et a bientot mes amis!

    opened by Not-Neon 2
  • Résolution de faille critique

    Résolution de faille critique

    (Toujours en attente d'un numéro de vulnérabilité CERTFR.)

    Une non-traduction a été trouvée dans le code de Rouille. La brigade sémantique est aux aguets et le niveau d'alerte tradupirate passe au niveau carmin.

    En attente de validation par un.e relecteur.ice.

    opened by bnjbvr 1
  • Ajout de traductions manquantes

    Ajout de traductions manquantes

    Ajout des traductions manquantes afin de pouvoir écrire rouille en rouille. Voir https://github.com/joxcat/rouille/tree/rouille_in_rouille (bloquée tant qu'il n'y a pas un commit avec ces traductions).

    De plus est-ce que les traductions : "portée" => "span" et "macro_procédurale" => "proc_macro" sont les plus adaptées ou est-ce que vous auriez une meilleure traduction de ses termes ?

    opened by joxcat 0
  • Add Swedish translation

    Add Swedish translation

    Swedish translation incoming!

    | image | |:--:| | Credits: Midjourney AI - prompt:crab celebrating Swedish midsummer. Sun, green fields, clear blue sky. Hyper-realistic painting|

    opened by vojd 0
  • Renommer

    Renommer "standard library" (std) en "bibliothèque standard" (bst)

    Malgré les efforts faits, il semblerait qu'il ne soie actuellement pas possible de référencer la bibliothèque standard du language Rouille sans utiliser le terme anglais "std".

    // Pas bien
    utilisons std::collections::Dictionnaire comme Dico;
    
    // Bien
    utilisons bst::collections::Dictionnaire comme Dico;
    
    opened by cyyynthia 0
  • Possibilité d'utiliser des virgules pour les nombre flottant ?

    Possibilité d'utiliser des virgules pour les nombre flottant ?

    Comme le titre l'indique, on pourrait utiliser des virgules à la place des points pour representer les nombres flottant. J'imagine qu'il faudrait reflechir un peu à faire une nouvelle syntaxe pour les argument des fonctions, etc.

    opened by rokonio 1
Owner
Benjamin Bouvier
Compiler engineer at @EmbarkStudios, previously @mozilla. Maintainer of @kresusapp.
Benjamin Bouvier
Simple http server in Rust (Windows/Mac/Linux)

How it looks like? Screenshot Command Line Arguments Simple HTTP(s) Server 0.6.1 USAGE: simple-http-server [FLAGS] [OPTIONS] [--] [root] FLAGS:

LinFeng Qian 788 Dec 28, 2022
Rust / Hasura / GraphQL

Rust + Hasura This is an example of a Rust server that functions as a remote schema for Hasura. It demonstrates: user login + signup JWT authorization

Rónán 130 Dec 26, 2022
Actix Web is a powerful, pragmatic, and extremely fast web framework for Rust.

Actix Web Actix Web is a powerful, pragmatic, and extremely fast web framework for Rust Features Supports HTTP/1.x and HTTP/2 Streaming and pipelining

Actix 16.3k Jan 8, 2023
An HTTP library for Rust

hyper A fast and correct HTTP implementation for Rust. HTTP/1 and HTTP/2 Asynchronous design Leading in performance Tested and correct Extensive produ

null 11k Jan 7, 2023
JSON Web Token implementation in Rust.

Frank JWT Implementation of JSON Web Tokens in Rust. Algorithms and features supported HS256 HS384 HS512 RS256 RS384 RS512 ES256 ES384 ES512 Sign Veri

Alex Maslakov 246 Dec 27, 2022
Rust templating with Handlebars

handlebars-rust Handlebars templating language implemented in Rust and for Rust. Handlebars-rust is the template engine that renders the official Rust

Ning Sun 923 Dec 29, 2022
An Extensible, Concurrent Web Framework for Rust

Iron Extensible, Concurrency Focused Web Development in Rust. Response Timer Example Note: This example works with the current iron code in this repos

null 6.1k Dec 27, 2022
GraphQL server library for Rust

GraphQL server library for Rust GraphQL is a data query language developed by Facebook intended to serve mobile and web application frontends. Juniper

GraphQL Rust 4.9k Jan 5, 2023
An expressjs inspired web framework for Rust

nickel.rs nickel.rs is a simple and lightweight foundation for web applications written in Rust. Its API is inspired by the popular express framework

null 3k Jan 3, 2023
[OUTDATED] A light HTTP framework for Rust

Rustful A light HTTP framework for Rust, with REST-like features. The main purpose of Rustful is to create a simple, modular and non-intrusive foundat

Erik Hedvall 873 Nov 12, 2022
A web framework for Rust.

Rocket Rocket is an async web framework for Rust with a focus on usability, security, extensibility, and speed. #[macro_use] extern crate rocket; #[g

Sergio Benitez 19.5k Jan 8, 2023
REST-like API micro-framework for Rust. Works with Iron.

Table of Contents What is Rustless? Usage warning Basic Usage Complex example Mounting Parameters validation and coercion Use JSON Schema Query string

Rustless 610 Jan 4, 2023
A lightweight web framework built on hyper, implemented in Rust language.

Sapper Sapper, a lightweight web framework, written in Rust. Sapper focuses on ergonomic usage and rapid development. It can work with stable Rust. Sa

Daogang Tang 622 Oct 27, 2022
Low level HTTP server library in Rust

tiny-http Documentation Tiny but strong HTTP server in Rust. Its main objectives are to be 100% compliant with the HTTP standard and to provide an eas

null 785 Dec 29, 2022
Web framework in Rust

Rouille, a Rust web micro-framework Rouille is a micro-web-framework library. It creates a listening socket and parses incoming HTTP requests from cli

Pierre Krieger 840 Jan 1, 2023
A fast, boilerplate free, web framework for Rust

Tower Web A web framework for Rust with a focus on removing boilerplate. API Documentation Tower Web is: Fast: Fully asynchronous, built on Tokio and

Carl Lerche 969 Dec 22, 2022
Sincere is a micro web framework for Rust(stable) based on hyper and multithreading

The project is no longer maintained! Sincere Sincere is a micro web framework for Rust(stable) based on hyper and multithreading. Style like koa. The

null 94 Oct 26, 2022
:zap: fast http framework for rust

zap ⚡ The mission of zap is, to deliver a basic, but fast rust web server library. Documentation About This code is based on tokio's minihttp project,

Daniel Oltmanns 51 Jun 7, 2022
Source Code for 'Practical Rust Web Projects' by Shing Lyu

Apress Source Code This repository accompanies Practical Rust Web Projects by Shing Lyu (Apress, 2021). Download the files as a zip using the green bu

Apress 44 Nov 17, 2022