Thinking Elixir Podcast

99: Slipstream and Tree-Sitter with Michael Davis


Listen Later

Michael Davis explains Slipstream, a Phoenix channels websocket client library that enables Elixir applications to become a client of a Phoenix channel on another server. Out of this work, an underlying websocket library was created built on mint, which has now officially become part of the mint project. We talk about other libraries in the same space and why Slipstream was created. Michael was also involved in the recent Tree-Sitter Elixir work that Github celebrated and he shares some insight into that work as well!

Show Notes online - http://podcast.thinkingelixir.com/99

Elixir Community News

  • https://twitter.com/remote_ruby/status/1522546728922226691 – José Valim was a guest on the Remote Ruby podcast talking about his history as a Rails core contributor and the creation of Elixir.
  • https://share.transistor.fm/s/7dc8e2e3 – Remote Ruby podcast
  • https://github.com/kipcole9/image – New image-processing library called Image that leverages libvips though NIF bindings.
  • https://github.com/libvips/libvips
  • https://github.com/lucasvegi/Elixir-Code-Smells – Elixir Code Smells project
  • https://github.com/lucasvegi/Elixir-Code-Smells/blob/main/code_smells.livemd – Elixir Code Smells Livebook notebook
  • https://litestream.io/ – Litestream project for SQLite replication
  • https://fly.io/blog/all-in-on-sqlite-litestream/ – Ben Johnson joined Fly.io and will continue work on Litestream
  • David's wife had a baby girl! Congrats! Now has 2 kids.
  • Next episode is 100 and will be the final visit José Valim in our series. Also covers future development.
  • Do you have some Elixir news to share? Tell us at @ThinkingElixir or email at [email protected]

    Discussion Resources

    • https://github.com/NFIBrokerage/slipstream – Slipstream Phoenix channels websocket client library
    • https://github.com/NFIBrokerage/mint_web_socket – Separate library that uses Mint and supports websockets.
    • https://github.com/NFIBrokerage/slipstream/blob/main/guides/implementation.md
    • https://github.com/Azolo/websockex – Pure Elixir websockets implemented as a special OTP process
    • https://github.com/ninenines/gun – Popular Erlang HTTP/WebSocket client library from the same group of dependencies as cowboy, the underlying HTTP/WebSocket server for Phoenix
    • https://github.com/jeremyong/websocket_client – WebSocket client that underlies phoneix_client and phoenix_gen_socket_client. Appears to be inactive and it no longer compiles on OTP25.
    • https://hex.pm/packages/phoenix_channel_client – Retired library by Justin Schneck
    • https://hex.pm/packages/phoenix_client – by Justin Schneck “Elixir Phoenix Client for Channels”
    • https://github.com/J0/phoenix_gen_socket_client – Another Phoenix Channel client
    • https://elixirforum.com/t/slipstream-a-slick-elixir-websocket-client-for-phoenix-channels/37456 – ElixirForum post on Slipstream
    • https://github.com/nerves-hub/nerves_hub_link – A more prominent dependent of Slipstream. Slipstream is used as the default communication system for embedded devices to talk to the nerves hub (which provides firmware updates)
    • https://twitter.com/whatyouhide/status/1521381183229210624 – mint_web_socket was just moved under the elixir-mint organization
    • https://twitter.com/josevalim/status/1521390714025758720 – Jose Valim recently credited NFIBrokerage for bringing even more contributions to the Elixir community
    • https://helix-editor.com/
    • https://clojure.org/
    • https://github.com/NFIBrokerage
    • https://www.eventstore.com/eventstoredb
    • https://github.com/elixir-mint/mint
    • https://github.com/elixir-lang/gen_stage
    • https://grpc.io/
    • https://github.com/tree-sitter/tree-sitter
    • https://github.com/elixir-lang/tree-sitter-elixir
    • https://elixir-lang.org/tree-sitter-elixir/
    • https://github.com/jonatanklosko – Jonatan Kłosko did the majority of the work on the Elixir Tree-Sitter library
    • https://github.com/gleam-lang/tree-sitter-gleam/
    • https://github.com/ninenines/gun
    • https://github.com/Azolo/websockex
    • https://hex.pm/packages/phoenix_client
    • https://github.com/nerves-hub/nerves_hub_link
    • https://en.wikipedia.org/wiki/HTTP/2
    • https://github.com/NFIBrokerage/spear
    • Guest Information

      • https://github.com/the-mikedavis – on Github
      • https://github.com/NFIBrokerage – Work Github organization
      • Find us online

        • Message the show - @ThinkingElixir
        • Email the show - [email protected]
        • Mark Ericksen - @brainlid
        • David Bernheisel - @bernheisel
        • Cade Ward - @cadebward
        • Sponsored By:

          • Fly.io: Fly.io is a great place to deploy your next Phoenix application! Check them out!
          ...more
          View all episodesView all episodes
          Download on the App Store

          Thinking Elixir PodcastBy ThinkingElixir.com

          • 4.9
          • 4.9
          • 4.9
          • 4.9
          • 4.9

          4.9

          31 ratings


          More shows like Thinking Elixir Podcast

          View all
          The Changelog: Software Development, Open Source by Changelog Media

          The Changelog: Software Development, Open Source

          285 Listeners

          Startups For the Rest of Us by Rob Walling

          Startups For the Rest of Us

          694 Listeners

          Software Engineering Daily by Software Engineering Daily

          Software Engineering Daily

          629 Listeners

          Go Time: Golang, Software Engineering by Changelog Media

          Go Time: Golang, Software Engineering

          128 Listeners

          JS Party: JavaScript, CSS, Web Development by Changelog Media

          JS Party: JavaScript, CSS, Web Development

          92 Listeners

          Syntax - Tasty Web Development Treats by Wes Bos & Scott Tolinski - Full Stack JavaScript Web Developers

          Syntax - Tasty Web Development Treats

          986 Listeners

          REWORK by 37signals

          REWORK

          212 Listeners

          CoRecursive: Coding Stories by Adam Gordon Bell - Software Developer

          CoRecursive: Coding Stories

          185 Listeners

          Elixir Mix by Charles M Wood

          Elixir Mix

          13 Listeners

          Elixir Wizards by SmartLogic LLC

          Elixir Wizards

          22 Listeners

          The Stack Overflow Podcast by The Stack Overflow Podcast

          The Stack Overflow Podcast

          63 Listeners

          Beam Radio by Lars Wikman

          Beam Radio

          11 Listeners

          Oxide and Friends by Oxide Computer Company

          Oxide and Friends

          47 Listeners

          Elixir Mentor by Jacob Luetzow

          Elixir Mentor

          2 Listeners

          Elixir Friends by German Velasco

          Elixir Friends

          0 Listeners