A Rust közösség egyik legfontosabb éves eseménye ismét közeleg, és bár még csak április van, a szervezők már most pörgetik a gépezetet. Ha eddig kihagytad a RustConf-ot, most van itt az ideje, hogy beírd a naptáradba – vagy legalábbis kövesd a fejleményeket, mert a call for proposals határideje nem vár örökké.

A konferencia dátuma és helyszíne

A RustConf 2023-at idén szeptemberben rendezik meg Albuquerque-ben, Új-Mexikóban. A helyszínválasztás önmagában is érdekes: az elmúlt években a konferencia bejárta Portlandet, Bécset (online formában), majd visszatért az Egyesült Államokba. Az Albuquerque Convention Center ad otthont az eseménynek, ami azt jelenti, hogy idén ismét élő, személyes találkozásra is lesz lehetőség a világ minden tájáról érkező Rustaceanek számára.

Megjegyzés

A pontos regisztrációs díjak és a szállásfoglalási információk a hivatalos RustConf oldalon jelennek meg majd, érdemes onnan feliratkozni a hírlevélre, ha nem akarsz lemaradni semmiről.

A konferencia hagyományosan egy-két napos, workshopokkal, keynote-okkal és párhuzamos szekciókkal. Az elmúlt évek alapján valószínűleg idén is lesz egy "unconf" jellegű nap, ahol a résztvevők spontán módon szervezhetnek beszélgetéseket, illetve a Rust Foundation is bemutatja majd az aktuális working group-ok státuszát.

A call for proposals és a beadási határidők

A CFP (call for proposals) jellemzően tavasszal nyílik meg, és a beadási határidő általában május végére vagy június elejére esik. Ha van egy jó ötleted egy előadáshoz – legyen szó gyakorlati tapasztalatokról, egy érdekes crate bemutatásáról, vagy akár egy nyelvi feature mélyebb elemzéséről –, most van itt az ideje, hogy összerakd a javaslatodat.

Amit érdemes tudni a beadásról:

  • A szervezők előnyben részesítik azokat az előadásokat, amelyek valós, gyakorlati problémákat mutatnak be, nem csak elméleti fejtegetést.
  • Kezdő előadóknak is van esélyük, sőt, a RustConf kifejezetten bátorítja az első alkalommal jelentkezőket.
  • Érdemes röviden, tömören megfogalmazni az absztraktot – a bírálóknak rengeteg jelentkezést kell átnézniük.
Tipp

Ha bizonytalan vagy, hogy a témád elég "nagy" téma-e egy konferenciára, gondolj bele: sokszor egy apró, konkrét probléma bemutatása (pl. "hogyan optimalizáltuk a build időnket 40%-kal") sokkal hasznosabb a hallgatóságnak, mint egy általános bevezető a Rust nyelvbe.

Korábbi évek legemlékezetesebb előadásai

Ha még sosem jártál RustConf-on, érdemes visszanézni a korábbi évek felvételeit a YouTube-on. Néhány előadás azóta is legendás a közösségben:

  • "Ownership is Overrated" jellegű vitaindító előadások, amik a nyelv filozófiáját boncolgatták, és sokat segítettek abban, hogy a kezdők megértsék, miért is éri meg a borrow checker-rel küzdeni.
  • Async runtime-okról szóló mélymerülések, amik bemutatták, hogyan épül fel egy futásidejű ütemező a nulláról.
  • WebAssembly-vel kapcsolatos case study-k, ahol a cégek megosztották, hogyan váltottak Rust+WASM stackre a korábbi JavaScript-alapú megoldásaikról.

A keynote-ok általában a nyelv jövőjéről szólnak – a Rust core team tagjai szoktak beszámolni arról, hogy min dolgoznak éppen, milyen RFC-k vannak napirenden, és merre tart a nyelv.

Milyen témák várhatók idén: async, embedded, WASM

Ha a jelenlegi trendeket nézzük, három terület biztosan erősen jelen lesz idén is.

Async Rust

Az async ökoszisztéma folyamatosan érik, de még mindig vannak durva élek – gondoljunk csak arra, hogy az async fn trait-eken belüli használata még mindig csak a async-trait crate segítségével oldható meg kényelmesen. Egy tipikus workaround így néz ki:

use async_trait::async_trait;

#[async_trait]
trait DataFetcher {
    async fn fetch(&self, id: u32) -> Result<String, String>;
}

struct RemoteFetcher;

#[async_trait]
impl DataFetcher for RemoteFetcher {
    async fn fetch(&self, id: u32) -> Result<String, String> {
        // valós esetben itt hálózati hívás történne
        Ok(format!("adat-{id}"))
    }
}

Ez a minta valószínűleg még idén is téma lesz a konferencián, hiszen sok csapat ezzel dolgozik nap mint nap, és a natív megoldás még csak terveken belül létezik.

Embedded Rust

Az embedded közösség az egyik leggyorsabban növekvő szegmens. A no_std környezetben írt kód egyre stabilabb, és a let-else szintaxis (ami a 2022-es LDM döntés után idén, az 1.65-ös release óta stabil) kifejezetten jól jön az embedded kódban, ahol a hibakezelést gyakran korán, egyértelműen kell elvégezni:

fn parse_sensor_value(raw: &str) -> u16 {
    let Ok(value) = raw.trim().parse::<u16>() else {
        // hibás érték esetén visszatérünk egy alapértelmezett állapotba
        return 0;
    };
    value
}

Várhatóan lesznek előadások konkrét mikrokontrolleres projektekről, illetve az embedded-hal ökoszisztéma állapotáról is.

WebAssembly

A WASM téma sem fog eltűnni – sőt, ahogy egyre több cég próbálja ki a Rust+WASM kombinációt a böngészőn kívüli futtatókörnyezetekben (pl. plugin rendszerekben), egyre több gyakorlati tapasztalat gyűlik össze. A GAT-ok (Generic Associated Types), amik az 1.65-ös release óta stabilak, egyre inkább megjelennek olyan absztrakciókban, amik plugin-szerű architektúrákat írnak le:

trait Storage {
    type Iter<'a>: Iterator<Item = &'a str>
    where
        Self: 'a;

    fn iter(&self) -> Self::Iter<'_>;
}

struct InMemoryStorage {
    items: Vec<String>,
}

impl Storage for InMemoryStorage {
    type Iter<'a> = std::slice::Iter<'a, String>;

    fn iter(&self) -> Self::Iter<'_> {
        self.items.iter()
    }
}

Ez a fajta minta pontosan az a fajta "most már lehet" funkció, amiről szívesen hallgatnék egy előadást – hogyan lehet vele valódi, futásidőben rugalmas plugin rendszereket építeni.

Jó tudni

A fenti kódrészletek mind fordulnak a jelenlegi stabil Rust 1.68-cal, edition 2021 mellett – érdemes kipróbálni őket helyben is, mielőtt beadnád a saját CFP anyagodat egy hasonló témában.

Hogyan kövesd élőben vagy utólag az eseményt

Ha nem tudsz személyesen elutazni Albuquerque-be, semmi gond – a RustConf hagyományosan élőben streameli a fő szekciókat, és a felvételek utólag is elérhetők maradnak a hivatalos YouTube csatornán. Néhány praktikus tipp:

  • Kövesd a Rust Foundation és a RustConf hivatalos Twitter/Mastodon fiókjait a friss infókért.
  • Ha van céges büdzséd konferenciákra, a jegyek általában korai regisztrációval kedvezőbbek – érdemes időben lecsapni rájuk.
  • A közösségi Discord szerverek (pl. a hivatalos Rust Discord) konferencia idején élénk beszélgetéseket generálnak, ahol a résztvevők valós időben osztják meg a benyomásaikat.
Figyelem

A korábbi évek alapján a jegyek gyorsan elfogynak, különösen a workshop napokra szóló belépők – ne hagyd az utolsó pillanatra a regisztrációt, ha biztosra akarsz menni.

Összefoglalás

A RustConf 2023 idén ismét Albuquerque-ben várja a közösséget szeptemberben, és a call for proposals hamarosan lezárul – ha van egy jó előadási ötleted, ne halogasd a beadást. A várható témák (async, embedded, WASM) jól tükrözik azt, hogy a nyelv hol tart most: a let-else és a GAT-ok már beépültek a mindennapi eszköztárba, miközben az async trait-ek natív támogatása még mindig a jövő zenéje. Akár személyesen mész, akár csak a streamet nézed majd otthonról, érdemes figyelemmel kísérni az eseményt – mindig jó alkalom arra, hogy lásd, merre tart a Rust ökoszisztéma.