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

Evolving API design in Rust

00:00

Formal Metadata

Title
Evolving API design in Rust
Title of Series
Number of Parts
15
Author
License
CC Attribution 3.0 Unported:
You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal purpose as long as the work is attributed to the author in the manner specified by the author or licensor.
Identifiers
Publisher
Release Date
Language

Content Metadata

Subject Area
Genre
Abstract
As Rust is a young language containing many innovative features, questions about how to structure Rust libraries and API's are common. Heavy use of metaprogramming and trait constraints can make libraries hard to understand and use, but also bring great power to reason about programs at compile-time. How do you design a library that exploits the power of Rust without making new users say 'This is way too complicated to bother with'? We will discuss these issues using an existing Rust crate as a case study in both designing an API and how it is influenced by the API decisions of the crates it uses as dependencies.
Hydraulic jumpComputer-generated imageryLine (geometry)CodeLibrary (computing)Function (mathematics)Keyboard shortcutEvent horizonStructural loadTexture mappingQuadrilateralStrutContext awarenessPoint (geometry)Scale (map)Vector spaceRotationPoint (geometry)BuildingVideo gameFormal languageCompilation albumQuadrilateralMereologyData structureParameter (computer programming)Default (computer science)Functional (mathematics)Fiber bundle1 (number)QuicksortObject (grammar)State of matterContext awarenessOpen sourceGame theoryInterpreter (computing)Revision controlStructural load2 (number)Information overloadExpressionTexture mappingGoodness of fitBitProjective planePlanningPerspective (visual)Inheritance (object-oriented programming)Fundamental theorem of algebraTable (information)MathematicsSoftware frameworkWritingSlide ruleSoftware maintenanceSoftware bugPower (physics)Metropolitan area networkDrop (liquid)CASE <Informatik>Electronic mailing listRotationBit rateProper mapArtificial neural networkSet (mathematics)Traffic reportingTransformation (genetics)JSONXMLComputer animation
StrutContext awarenessPoint (geometry)Scale (map)Vector spaceRotationDefault (computer science)Data conversionLink (knot theory)Type theoryLibrary (computing)Game theoryArtistic renderingVideoconferencingWeb browserStructural loadComputer-generated imageryEvent horizonInclusion mapKolmogorov complexityMereologySynchronizationCloningHash functionSicNormed vector spaceScalar fieldDigital photographyData modelSet (mathematics)Collision detectionPredictionStatisticsDisintegrationParameter (computer programming)Matrix (mathematics)Different (Kate Ryan album)Disk read-and-write headMathematicsSoftware frameworkPhysicalismMultiplication signCollisionHacker (term)Operator (mathematics)Programmer (hardware)PlanningParameter (computer programming)Loop (music)State of matterEvent horizonQuicksortFunctional (mathematics)WindowSystem callGoodness of fitOperating systemComplex (psychology)Game theoryMereologyTerm (mathematics)Computer configurationType theoryKeyboard shortcutContext awarenessSimilarity (geometry)Point (geometry)RotationPower (physics)Default (computer science)CASE <Informatik>Data structureLibrary (computing)Structural loadBit rateCodeGeneric programmingPerimeterEngineering physicsCuboidLevel (video gaming)SineIdeal (ethics)AlgebraNeuroinformatikArithmetic meanComputer animation
SicScalar fieldCloningMIDILocal GroupData structureSemigroupLoop (music)Source codeAbelian categoryAbelsche GruppeAlgebraic closureEquivalence relationAxiomInverse elementAssociative propertyIdentity managementCommutative propertyMatching (graph theory)Term (mathematics)CompilerMathematicsType theoryPhysical systemAlgebraSoftware bugFormal grammarGraphics processing unitError messageVector spaceScaling (geometry)State of matterCASE <Informatik>Level (video gaming)Multiplication signSource codeXMLComputer animation
Local GroupData structureSemigroupLoop (music)Source codeAbelian categoryAbelsche GruppeAlgebraic closureEquivalence relationAxiomInverse elementAssociative propertyIdentity managementCommutative propertyComputational complexity theoryLie groupInheritance (object-oriented programming)Fluid staticsString (computer science)CuboidFluid staticsWritingPoint (geometry)QuicksortFlow separationFile systemString (computer science)VirtualizationComputer fileType theoryNormal (geometry)CASE <Informatik>Structural loadGame theoryData storage deviceMedical imagingComputer fontConfiguration spaceOperating systemDirectory serviceComputer programmingAuthorizationMobile appMereologyProgram slicingObject (grammar)Java appletCompilerRevision controlUniform resource locatorInformationFormal grammarCase moddingMetadataParameter (computer programming)NP-hardMiniDiscPhysical systemCodeEndliche ModelltheorieGoodness of fitProcess (computing)Instance (computer science)Message passingComputing platformService (economics)Formal languageData structureMathematicsFunctional (mathematics)Table (information)1 (number)Decision theoryWindowECosSystem callMathematical singularityComputer animationXML
Dean numberFlagDew pointDecision theoryCASE <Informatik>Figurate numberAuthorizationTrailIteration
IterationMIDIComputational complexity theoryBit rateCurve fittingoutputCoefficient of determinationRevision controlResultantMultiplication signFunctional (mathematics)Disk read-and-write headType theoryCodeCASE <Informatik>Dressing (medical)WritingControl flowQuicksortEncapsulation (object-oriented programming)Computer animation
JSONXML
Transcript: English(auto-generated)