Xilem: Let's Build High Performance Rust UI - Raph Levien

Поділитися
Вставка
  • Опубліковано 28 вер 2024
  • Xilem is a new UI toolkit designed for high performance and idiomatic expression of UI and app logic, suitable for both desktop and mobile. Xilem is built in a layered architecture. At the top is a reactive layer where views are simple statically typed Rust structs (though type erasure is possible), and no macros are needed. The widget layer is evolved from Druid. At the infrastructure layer is Vello, a 2D rendering engine using GPU compute shaders, specially tuned for dynamic vector graphics content. The text stack is also tuned for performance, including supporting animation of variable font parameters. Accessibility is a primary goal, and integration with AccessKit is baked in from the start. Another goal is interop with other projects in the Rust ecosystem, including wgpu, and providing a clean abstraction layer for widgets. It is work in progress, with a strong open source community driving toward ambitious goals.
    Slides: docs.google.co...
    Follow Raph on:
    mastodon: mastodon.onlin...
    github: github.com/rap...
    This talk was given at RustNL 2024, in Delft, The Netherlands.
    Playlist of other talks from RustNL 2024: • RustNL 2024
    Want to come to RustWeek 2025 in-person? go to 2025.rustnl.org

КОМЕНТАРІ • 18

  • @isaactfa
    @isaactfa 3 місяці тому +9

    He's really Donald Knuth-ing it.

  • @dbug64
    @dbug64 3 місяці тому +7

    How many UI frameworks has Raph now started? :^)
    Are they connected to each other somehow? Or are we(Rust community) still searching for the best way to do non-OO UI in Rust?

    • @DavidSchmitt
      @DavidSchmitt 3 місяці тому +4

      I'd expect the number of projects to consolidate as people are figuring out what does work and start focusing on higher levels (like how many projects are already building on top of winit)

    • @dbug64
      @dbug64 3 місяці тому +6

      @@DavidSchmitt Even if it's fragmented I find this exploration very interesting in many ways. Like you point out, winit is used a lot, accessabilitykit too.
      I read that someone experimented with using the async paradigm as a base for UI.
      The immediate UI's feels like a functional approach, given a state, create the UI from it.

    • @DavidSchmitt
      @DavidSchmitt 3 місяці тому +2

      @@dbug64 I also expect that basic infrastructure libraries like winit have a lot less integration concerns with the higher level frameworks compared to e.g. widget libraries

    • @khai96x
      @khai96x 3 місяці тому +1

      JS/TS has capabilities to do OOP-based UI, but most UI frameworks still chose the declarative model (React-like).

  • @avwie132
    @avwie132 3 місяці тому +2

    Weird that Google is funding it with their 100% commitment to Jetpack Compose

    • @faisalxd369
      @faisalxd369 2 місяці тому +3

      The work they're doing is not tied to Xilem and the performance benefits can be easily brought to other UI toolkits (namely Jetpack Compose).

  • @DavoGalavotti
    @DavoGalavotti 3 місяці тому

    I love the idea, I hate the name.

  • @pookiepats
    @pookiepats 21 день тому +1

    dude another one... 4 more years of hype and abandoned repos, rust doing their best OCAML impression

  • @akithered
    @akithered 3 місяці тому +2

    This is the talk he's referring to at RustLab ua-cam.com/video/mmW_RbTyj8c/v-deo.html

  • @irlshrek
    @irlshrek 3 місяці тому +1

    super cool!

  • @RoamingAdhocrat
    @RoamingAdhocrat 2 місяці тому

    22:00 can I get "Geometry is easy if all children are same height" on a t-shirt please

  • @AnchorTechFree
    @AnchorTechFree 2 місяці тому

    Any Tutorials ?

  • @simpingsyndrome
    @simpingsyndrome 2 місяці тому

    ok bagus

  • @olsuhvlad
    @olsuhvlad 14 днів тому

    1 In the beginning was the Word, and the Word was with God, and the Word was God.
    2 The same was in the beginning with God.
    3 All things were made by him; and without him was not any thing made that was made.
    4 In him was life; and the life was the light of men.
    5 And the light shineth in darkness; and the darkness comprehended it not.
    6 There was a man sent from God, whose name was John.
    7 The same came for a witness, to bear witness of the Light, that all men through him might believe.
    8 He was not that Light, but was sent to bear witness of that Light.
    9 That was the true Light, which lighteth every man that cometh into the world.
    10 He was in the world, and the world was made by him, and the world knew him not.
    11 He came unto his own, and his own received him not.
    12 But as many as received him, to them gave he power to become the sons of God, even to them that believe on his name:
    13 Which were born, not of blood, nor of the will of the flesh, nor of the will of man, but of God.
    14 And the Word was made flesh, and dwelt among us, (and we beheld his glory, the glory as of the only begotten of the Father,) full of grace and truth.
    (Jn.1:1-14)

  • @GigachadRustacean-lu8bo
    @GigachadRustacean-lu8bo 3 місяці тому +2

    another project that google will start and killed at some point in time

    • @RoamingAdhocrat
      @RoamingAdhocrat 2 місяці тому

      at least as an (open-source?) project it doesn't cease to exist when google lose interest