Elektroniktidningen pratar med Grepit i Luleå som hjälpte en svensk biltillverkare att utveckla den första Rust-baserade ECU:n. Och vi talar med biltillverkaren.
Den första ECU:n (styrdator i fordon) kodad i programspråket Rust utvecklades i Sverige. Utvecklingsbolaget Grepit i Luleå höll biltillverkaren i handen under resan.
Det är bara en av Grepits insatser i att spridaRust till inbyggda system till industrin.
Johan Eriksson grundade Grepit under arbetet med sin doktorsavhandling på Luleå tekniska universitet. Han och handledaren definierade bland annat ett ramverk för realtidsprogrammering för programspråket Rust på Cortex M-processorer – Rtic Framwork.
Redan innan avhandlingen var klar kände Johan Eriksson att Rust hade en stor potential som kvalitetshöjare av programvara. Den potentialen ville han vara med och realisera så han grundade Grepit, ett utvecklingsbolag för industriell mjukvara med en uttalad mission att sprida Rust till fler.
Den här optimismen är inte Johan Eriksson ensam om. Rust är känt för att toppa listor över programspråk som utvecklare trivs att arbeta med.
Språket släpptes i version 1.0 år 2015, efter att ha skapats av Graydon Hoare på Mozilla redan 2006. Det skapades som ett säkrare alternativ till C, som länge varit det dominerande programspråket för inbyggda system. Rust har strikta rutiner för minneshantering i motsats till C, som lämnar allting olåst vilket öppnat för många buggar och cyberattacker.
Jimmy Abrahamsson, studiekamrat till Johan Eriksson, anslöt sig till Grepit 2017. Idag har företaget kring 50 anställda. Utöver maskinnära utvecklare finns här frontendutvecklare och apputvecklare liksom hårdvarukompetens.
![]() |
Anna Costalonga |
– Så vi är ett techbolag som kan leverera hela lösningen från hårdvara till app, konstaterar Anna Costalonga, systemingenjör och projektchef på Grepit.
Uppdragen är till 90 procent inbyggda system.
– Kretskort, design, assembler, FPGA-programmering, och så vidare.
Arbetar ni bara i Rust?
– Vi använder Rust när vi kan välja. Men en del kunder använder C, så vi måste kunna båda.
Ni har kunder inom fordon, industri, gruvor, försvar och energi?
– Det finns exempel på Rust i alla de grupperna. Vi försöker alltid pusha kunden mot Rust. Men det kan ta mer eller mindre tid för olika kunder att adoptera språket.
Inom rymd?
– Vi har kunder inom rymd, men inga som adopterat Rust ännu. Vi ser det som ett mål för alla kunder – så kanske snart, skrattar Anna Costalonga.
År 2020 fick Grepit kontakt med en svensk biltillverkare och har hjälp den att implementera i Rust i sina inbyggda system. De möttes på en konferens i Berlin där Johan Eriksson och hans handledare presenterade sin forskning.
– De var intresserade av att börja använda Rust, men hade kanske inte hela den kompetens de behövde för att kunna försvara satsningen, berättarAnna Costalonga.
– Så vi bjöd över dem till en workshop i Luleå och visade hur de kunde integrera det i sina system.
Mötet följdes av test och utvärderingar där delsystem implementerades. I år hartillverkaren kunnat rullaut två elbilar med en Rust-ECU som en av komponenterna.
Grepit har inga fler Rustanvändare bland biltillverkare. Men branschen har fått upp ögonen för språket.
– När de startade var den svenska biltillverkaren ganska ensam. Idag växer intresset och andra biltillverkare erkänner värdet av Rust.
Någon skillnad mellan USA, Europa, Asien?
– Nejdå. Det är närmast en global rörelse – ett växande community inom flera sektorer.
Det sker en breddning av communityt utanför inbyggda system. Det sker även en specialisering där nischer som exempelvis IoT bildar egna användargrupper.
Öppen källkod är stort inom Rust. Grepit bidrar självt bland annat till byggsystemet Cargo.
– Vi publicerar många moduler och bibliotek som kan laddas hem och användas fritt. Den öppna källkoden är ett av skälen till att Rust är smidig att använda för företag – du får mycket av utvecklingen gratis.
Anna Costalonga gör tummen upp för Rusts stöd för att integrera med andra programspråk. Hon menar att den är smärtfri. Den ger en öppning för att migrera befintliga system eller delar av dem till Rust, genom att hålla sig till hybrida kodbaser med både C och Rust.
Hur fungerar det att rekrytera Rust-utvecklare?
– Det finns många intresserade. Det finns ett växande community kring Rust idag och språket har verkligen ett momentum nu. Fler och fler företag är intresserade. Och många vill arbeta med Rust.
Skeptiker?
– Nej. Där har vi haft tur. Alla som vi exponerat Rust för har varit nöjda och glada med att få arbeta med det. Ingen har sagt nej. Snarare motsatsen – det finns de som vägrar arbeta med något annat än Rust, skrattar hon.
– Det är inte alls ovanligt.
Grepit genomför utvecklingsuppdrag åt andra bolag och i egen regi. Det har sedan det grundades knoppat av sig två bolag – Zpark – som konverterar motorvärmarplatser till elbilsladdare, och Innovative living, som utvecklar smarta hus. Omsättningen var 50 miljoner kronor år 2023.
Var är fokus just nu?
– Vi fokuserar mycket på energi och hållbarhet. Där använder vi Rust inom energisystemen. Detsamma för kunder inom billaddartillverkare och batterisystem – skarp kod i Rust, berättar Anna Costalonga.
Bolaget har också utveckling kring att överföra universitetsprojekt kring Rust till att bli praktiskt användbara verktyg.
|
![]() |
Per Lindgren |
– Från 2026 och framåt kommer vi att ge en dedikerad kurs inom minnessäker programmering där vi lär ut Rust från grunden, berättar LTU-professorn Per Lindgren.
Han var Johan Erikssons tidigare handledare på LTU och är idag en av Grepits anställda.
Förstaspråken på LTU idag är Java och Python. Kursplanen föreskriver objektorienterad programmering och Rust saknar en fundamental mekanism kallad inheritance.
Men det har traits, som är ett mindre problematiskt koncept, enligt Per Lindgren.
Skulle Rust kunna ta över rollen som förstaspråk på LTU?
– Rust som introduktionsspråk anser jag skulle vara fullt möjligt att införa. Rust möjliggör en god förståelse för kopplingen mellan hård- och mjukvara – en stor styrka för just Rust – vilket man inte har i till exempel Java, säger Per Lindgren.
Världens första Rust-ECU
|
||
En Rust-programmerad ECU (electronic control unit) är ytterligare en fjäder i hatten för Rust – och en världspremiär inom fordon. Julius Gustavsson har i alla fall inte hört talas om några andra, och han borde ha koll, som medlem i Rust Safety Critical Consortium.
– Av de 109 medlemmarna kommer de flesta från bilindustrin. Övriga kommer från andra säkerhetskritiska industrier, som rymd, flyg och försvar. Alla är inte där som officiella representanter för sin arbetsgivare. Men Julius Gustavsson har kontakt med eller har bockat för personal från såväl europeiska som amerikanska och asiatiska biltillverkare. Toyota är en av konsortiets grundare. De europeiska tillverkarna är ganska komplett representerade. Rivian och VW har medlemsansökan i luften, liksom Jaguar och Renaultgruppen. Tesla annonserar efter Rust-kompetens – för att dokumentera vad som är offentligt. Bland underleverantörer inom fordon hittar vi Vector, Aptiv och Elektrobit. Infineons styrkretsar Aurix och Traveo stöder Rust, liksom ST:s Stellar. Bosch (Etas) annonserade i höstas kommande stöd för Rust. Har din arbetsgivare gått i bräschen för Rust i fordon? – Vi är de enda som har en hel ECU skriven i Rust – som redan är i produktion. Från medlemmarna i Safety Critical Consortium kan man höra att det är stort intresse för att börja använda Rust i säkerhetskritisk industri och många har redan projekt på gång. Julius Gustavsson var Rust-entusiast redan när han fick anställning på biltillverkaren och drev på för att få det adopterat – krigstrött efter 15 år av samma evigt återkommande minnesbuggar i C och C++. – Är det så här det ska vara? Finns det inget bättre sätt? tänkte Julius. Han experimenterade med Rust och fick sina förhoppningar bekräftade. ”För bra för att vara sant” säger han och berättar att han fortsätter – hittills utan framgång – att leta efter myntets baksida. Striktheten i hantering av minne och synkronisering tvingar utvecklaren att bocka för alla detaljer från början, vilket inte bara håller buggar borta utan även som en nästan magisk sidoeffekt gör att programmet även typiskt fungerar som tänkt när du väl fått det genom kompilatorn. Mycket Rustkod behövde produceras i projektet, eftersom befintlig kodstack var i C och C++. – Det tog cirka 3,5 år att gå från noll – bokstavligen – hela vägen till produktion. Allt gjordes på ett team på 5–10 personer. Någonting som är betydligt snabbare än vad vi är vana vid i industrin. ECU:n heter LPA. Den är baserad på en Arm Cortex M4-cpu och snurrar utan operativsystem. En modern bil kan utan problem innehålla hundra ECU:er. LPA har rollen att hantera funktioner i lågenergiläge – som att väcka upp bilens system vid behov. Det är en blygsam roll jämfört med exempelvis det omtalade beräkningsmonstret Nvidia Drive AGX Orin som sitter i samma fordon – i samma låda, till och med – och hanterar förarassistanssystem och självkörning. LPA har inte en säkerhetskritisk roll och kunde därmed fungera som en entredörr för Rust, som ännu saknar den stämpeln. Det är ett av skälen till att Rust Safety Critical Consortium finns – för att bocka för de sista punkterna för säkerhetscertifiering. Oddsen ser goda ut för att Julius Gustavssons arbetsgivare fortsätter använda Rust. – När vi började titta på möjligheten att tillämpa Rust i bilindustrin runt 2017–2018 fanns det många hinder, både brist på mjukvaru- och hårdvarustöd samt avsaknad av safety certifiering. Alla dessa hinder är i princip borta nu eller på väg att försvinna inom kort. – Vi söker ständigt efter möjligheter att kunna utveckla saker snabbare, med högre kvalitet och till lägre kostnad utan att någonsin tumma på vårt säkerhetstänk. Rust ser ut att kunna leverera stort på den fronten. Det finns gott om exempel på hur en växling från C/C++ till Rust får felfrekvenserna att dyka. Google rapporterar exempelvis 68 procent färre fel för sina Rustkodare i Android. – Samtidigt som de ser fördubbling av produktiviteten. |