We're sorry but this page doesn't work properly without JavaScript enabled. Please enable it to continue.
Feedback

How to write Rust instead of C, and get away with it (yes, it's a Python talk)

00:00

Formale Metadaten

Titel
How to write Rust instead of C, and get away with it (yes, it's a Python talk)
Serientitel
Anzahl der Teile
Autor
Lizenz
CC-Namensnennung - keine kommerzielle Nutzung - Weitergabe unter gleichen Bedingungen 3.0 Unported:
Sie dürfen das Werk bzw. den Inhalt zu jedem legalen und nicht-kommerziellen Zweck nutzen, verändern und in unveränderter oder veränderter Form vervielfältigen, verbreiten und öffentlich zugänglich machen, sofern Sie den Namen des Autors/Rechteinhabers in der von ihm festgelegten Weise nennen und das Werk bzw. diesen Inhalt auch in veränderter Form nur unter den Bedingungen dieser Lizenz weitergeben
Identifikatoren
Herausgeber
Erscheinungsjahr
Sprache

Inhaltliche Metadaten

Fachgebiet
Genre
Abstract
Have you ever tried optimizing a super-slow Python application and thought: “Oh! I wish I could just write this bit it in Rust”? Well, turns out you can! We will show you how Rust is a better alternative than C to make your programs lightning fast, and how to get away with it; without your users even noticing. As Infrastructure Engineers at Yelp, the challenge we face everyday is: scale. Yelp is mostly a Python shop and while this is great for development velocity, our work often revolves around making Python applications run faster. Until now, we have been using different techniques: faster interpreters, or, more often, C code. Given its safety guarantees, performance and promise of better tooling than C, we decided we had to give Rust a try. The initial results helped reinforce that there was a lot of opportunity for Rust to play an important role in our production code. Yelp heavily relies on the Apache Avro serialization format for its internal infrastructure. During the talk, we will show how we implemented an Avro serialization/deserialization library in Rust, how we were able to call it from Python (and in theory from any other language) with very little code, using tools such as cbindgen, CFFI and Milksnake. This talk would outline how easy it is to write performant code in a language like Rust and call it from Python applications without users even realizing it, making this a great solution for production services.
SoftwareIntelDateiformatBinärcodeCodeMaßstabProgrammierungFormale SpracheProgrammWinkelMaßerweiterungInterpretiererFunktionalProgrammbibliothekDateiformatCodeMultiplikationsoperatorBinärcodeKartesische KoordinatenMaßerweiterungParametersystemFlash-SpeicherEinsStandardabweichungTypentheorieStatistikKonfiguration <Informatik>EreignishorizontCASE <Informatik>ServerJust-in-Time-CompilerStellenringFormale SpracheTypinferenzBefehlsprozessorProgrammierspracheBimodulMathematikInstantiierungWeb SiteSmartphoneSoftware EngineeringSchreiben <Datenverarbeitung>Güte der AnpassungGradientMatrizenrechnungVersionsverwaltungDifferenteMAPBitNummernsystemCompilerSelbst organisierendes SystemTeilmengePetaflopsPaarvergleichMomentenproblemPunktDienst <Informatik>AppletResultanteSerielle SchnittstelleProjektive EbeneMetrisches SystemGeradeComputeranimation
Lesen <Datenverarbeitung>E-MailInterface <Schaltung>BinärcodeROM <Informatik>DatenparallelitätImplementierungCodegenerierungBinärdatenElektronische PublikationFunktionalKartesische KoordinatenSymboltabelleObjekt <Kategorie>Deklarative ProgrammierspracheBoolesche AlgebraAbstraktionsebeneSchnittmengeElektronischer ProgrammführerCodeProgrammbibliothekSerielle SchnittstelleDatenstrukturResultanteMultiplikationsoperatorKonfiguration <Informatik>Fahne <Mathematik>SpeicherverwaltungMusterspracheFormale SpracheCompilerDatenparallelitätMapping <Computergraphik>UmwandlungsenthalpieKeller <Informatik>Endliche ModelltheorieImplementierungArray <Informatik>PunktProgrammierparadigmaParametersystemFramework <Informatik>HalbleiterspeicherPufferüberlaufSoftware EngineeringBinärcodeInterface <Schaltung>SchlussregelGenerator <Informatik>ProgrammierungStabilitätstheorie <Logik>DateiformatBaumechanikDoS-AttackeNeuroinformatikComputervirusComputeranimation
Attributierte GrammatikVektorraumDatenstrukturElektronische PublikationDatensatzProgrammbibliothekPuffer <Netzplantechnik>SocketZeichenketteSoftwaretestCASE <Informatik>Virtuelle MaschineIterationFlash-SpeicherComputeranimation
ProgrammbibliothekZweiCodeCoxeter-GruppeAttributierte GrammatikDatenfeldTypentheorieKartesische KoordinatenCompilerFunktionalPlastikkarteWiederkehrender ZustandZeiger <Informatik>Interface <Schaltung>ZeichenketteRoboterComputeranimation
MultiplikationsoperatorProgrammbibliothekBitMakrobefehlCASE <Informatik>Elektronische UnterschriftFunktionalZeiger <Informatik>DatenstrukturResultanteInterface <Schaltung>ZeichenketteQuaderMultifunktionSyntaktische AnalyseParametersystemSpeicherverwaltungNummernsystemZeitrichtungComputeranimation
Elektronische UnterschriftSystemprogrammMakrobefehlCodeFunktionalCompilerMathematische Logik
FehlermeldungCodeSpeicherverwaltungENUMProgrammbibliothekFehlererkennungscodeMomentenproblemObjekt <Kategorie>Formale SpracheParametersystemKomplex <Algebra>HalbleiterspeicherKartesische KoordinatenGamecontrollerSpeicherverwaltungCodeBitElektronische PublikationFehlermeldungZweiPhysikalischer EffektComputeranimation
E-MailElektronische PublikationPunktProgrammbibliothekFunktionalSystemprogrammElektronische PublikationMakrobefehlDatenstrukturSymboltabelleDeklarative ProgrammierspracheProjektive EbeneYouTubeComputeranimation
CodeElektronische PublikationTypentheorieInnerer PunktSchnelltasteProjektive EbeneQuellcodeOpen SourceComputeranimation
Wrapper <Programmierung>Elektronische PublikationZeichenketteFahne <Mathematik>ExpertensystemProgrammbibliothekWurzel <Mathematik>Computeranimation
DateiformatHochdruckFunktion <Mathematik>E-MailBitFunktionalKugelkappeTypentheorieGanze ZahlMathematikKanalkapazitätInstantiierungRechter WinkelMultiplikationsoperatorVersionsverwaltungSchnittmengeDatenstrukturKategorie <Mathematik>ZeichenkettePi <Zahl>BinärcodeSystemplattformCodeProgrammbibliothekMapping <Computergraphik>Klasse <Mathematik>Elektronische PublikationKomplex <Algebra>Mailing-ListeSampler <Musikinstrument>NummernsystemCASE <Informatik>Selbst organisierendes SystemBimodulRekursive FunktionComputeranimation
TaskSnake <Bildverarbeitung>Open SourcePortabilitätSampler <Musikinstrument>Wort <Informatik>MathematikElektronische PublikationCASE <Informatik>E-MailVollständigkeitComputeranimation
Schreiben <Datenverarbeitung>Lesen <Datenverarbeitung>ProgrammbibliothekFormale SpracheFokalpunktAggregatzustandCodeSnake <Bildverarbeitung>MereologieZahlenbereichMathematikSchreiben <Datenverarbeitung>Green-FunktionInterpretiererMaßerweiterungMessage-PassingPunktZentrische StreckungKartesische KoordinatenZweiMultigraphRechter WinkelWrapper <Programmierung>BenchmarkWeb SiteGlobale OptimierungAbgeschlossene MengeComputeranimation
Schreiben <Datenverarbeitung>Lesen <Datenverarbeitung>Formale SpracheSondierungAppletVerschlingungProgrammbibliothekZentrische StreckungSampler <Musikinstrument>Rechter WinkelEin-AusgabeProdukt <Mathematik>Kartesische KoordinatenLesezeichen <Internet>ZweiCodeMechanismus-Design-TheorieSystemplattformVerschlingungAppletTypentheorieKeller <Informatik>Virtuelle MaschineMereologiePufferüberlaufFormale SpracheObjekt <Kategorie>Web SiteCompilerProjektive EbeneSondierungKonfiguration <Informatik>Prozess <Informatik>SpieltheorieSnake <Bildverarbeitung>EinsBesprechung/InterviewComputeranimation
Projektive EbeneProzess <Informatik>Güte der AnpassungProgrammbibliothekTropfenZahlenbereichComputeranimation
SoftwareFormation <Mathematik>Rechter WinkelProgrammbibliothekMaßerweiterungVirtuelle MaschineWrapper <Programmierung>BildschirmfensterSystemaufrufKartesische KoordinatenSelbst organisierendes SystemCodeMakrobefehlDistributionenraumOrdnung <Mathematik>SpieltheorieBridge <Kommunikationstechnik>Protokoll <Datenverarbeitungssystem>MultiplikationsoperatorWeb SiteFunktionalAbfrageFamilie <Mathematik>Formale SprachePermutationProjektive EbeneBinärcodeKurvenanpassungKlasse <Mathematik>NetzbetriebssystemMAPEin-AusgabeATMPi <Zahl>DifferenteGebäude <Mathematik>Zellularer AutomatGüte der AnpassungQuellcodeProgrammiergerätBitFreewareKette <Mathematik>BefehlsprozessorSystemplattformGRASS <Programm>RankingZeitrichtungImplementierungMereologieComputeranimation
Transkript: English(automatisch erzeugt)