Talking Async Ep1: Why C++20 is the Awesomest Language for Network Programming

Поделиться
HTML-код
  • Опубликовано: 27 янв 2025

Комментарии • 31

  • @dattiennguyen6712
    @dattiennguyen6712 3 года назад +9

    Great to see new Asio features demonstrated!

  • @DarkKnightUNS2008
    @DarkKnightUNS2008 3 года назад +9

    awesome talk. Looking forward to next episode

  • @jiecheng2969
    @jiecheng2969 2 года назад +4

    The most amazing C++ talk I’ve seen recently. Thank you for making this great tutorial! Please keep on making videos on boost::asio!!

  • @ahmetsaidtekkurt7832
    @ahmetsaidtekkurt7832 4 месяца назад +3

    more videos please, it is very hard for me to fully comprehend asio without bright minds like yours

  • @PaweSkalczynski
    @PaweSkalczynski 3 года назад +7

    It seemed so effortless when you do it Chris! Thank you for amazing piece of technology!

  • @Sol66459
    @Sol66459 3 года назад +6

    Super good talk. Loved the format with the two of you and the live coding. Really enjoyed it, great work on an awesome framework.

  • @lefteriseleftheriades7381
    @lefteriseleftheriades7381 2 года назад +1

    Love it. What a great library. Excellent work

  • @spacechild2
    @spacechild2 9 дней назад

    The coroutine version is really neat!

  • @FRANKPOTTER2
    @FRANKPOTTER2 3 года назад +4

    asio is getting better and better

  • @brewtaldeafmedal1262
    @brewtaldeafmedal1262 2 года назад +25

    C++ isn't so great? Are you kidding me? When was the last time you saw a language with such an ability and performance with network programming? C++ puts the game in another level, and we will be blessed if we ever see a language with its performance and expressiveness again. Clojure breaks records. Rust breaks records. C++ breaks the rules. You can keep your statistics. I prefer the magic.

    • @trevortrevose9124
      @trevortrevose9124 2 года назад

      Zig supports cross compilation and is more flexible but ight

    • @sandwich5344
      @sandwich5344 Год назад

      @@trevortrevose9124 if it Aint C then it aint for me! There's a reason why everything was build up from C

    • @coderstoner3362
      @coderstoner3362 Год назад +1

      @@sandwich5344 Possibly because C was created before other languages like c++?

  • @HimanshuRastogizzz
    @HimanshuRastogizzz 3 года назад +3

    There are few videos on ASIO, Now we have a whole channel dedicated to ASIO.

  • @Slicc12345
    @Slicc12345 Год назад

    best video as a introduction to asio coroutines!

  • @ignaciosharpe4129
    @ignaciosharpe4129 3 года назад

    great job

  • @PraveenKumar-hg1lf
    @PraveenKumar-hg1lf 3 года назад +1

    Amazing talk, although I will admit I don't understand a lot it. Anyway keep up the good work.

  • @willvan6956
    @willvan6956 2 года назад

    Impressive!

  • @RishabhRD
    @RishabhRD 3 года назад +1

    are these awaitable types going to land in c++23... and executor TS is proposing task types (atleast in libunifex, it is there at progress) are both going to coexist in c++23

  • @__hannibaalbarca__
    @__hannibaalbarca__ 7 месяцев назад

    This month should be only for asio library application training, i really need that.

  • @menkaur
    @menkaur 2 года назад

    holy shit this is awesome

  • @headlibrarian1996
    @headlibrarian1996 3 года назад +1

    Any chance of getting rid of the co_spawns in the hot path? A coroutine pool, however that might be implemented, would eliminate that overhead, most importantly the dynamic allocation of the coroutine frame, for the same reason you want a thread pool rather than to spawn a new thread on every connection.

    • @Hipony-vb9nl
      @Hipony-vb9nl 3 года назад +3

      Since a Coroutine needs to allocate undeterministic amount of memory - you're better of with overriding global new/delete and make a static memory storage in that case. IIRC there were PoCs of providing an allocator to the awaitable as a function parameter, since it can customize allocations in there too.

  • @reinterpret_cast
    @reinterpret_cast 3 года назад +2

    Does io_context spawn any threads internally or does it call epoll/select/... entirely inside the run() method?

    • @Traian-Enache
      @Traian-Enache 2 месяца назад +1

      Huge necropost, and i think you have figured out already, but I’ll leave this here in case anybody stumbles across this, with the same question.
      It does NOT* use threads internally. On Windows, it uses IOCP, and on Linux, depending on what version the kernel has, it either uses epoll, or io_uring for newer kernels.
      *It does use a single separate thread for DNS resolutions, started by the first resolution, and on Windows, another single thread for all timers (implementing a timer queue); on Linux it uses timerfd_create() for each timer

    • @reinterpret_cast
      @reinterpret_cast 2 месяца назад

      @@Traian-Enache Thanks, I actually didn't know about the DNS resolutions!

  • @yuew.3167
    @yuew.3167 2 года назад

    i got it !!!

  • @estanb980
    @estanb980 3 года назад +1

    Have golang-like channel?

  • @RishabhRD
    @RishabhRD 3 года назад

    solarized theme....