yasio

A multi-platform support c++11 library with focus on asio (asynchronous socket I/O) for any client applications.

OTHER License

Stars
905

Bot releases are hidden (Show)

yasio - Latest Release

Published by halx99 7 months ago

CHANGELOG

  1. Fix c++23 deprecated std::aligned_storage warning
  2. Ensure WSAStartup before initializing user static variables
yasio - v4.2.1

Published by halx99 8 months ago

yasio - v4.2.0

Published by halx99 8 months ago

CHANGELOG

  1. Improve kcp implementation
  2. Fix pure udp not handle packet forward
  3. Improve echo_client & echo_server
  4. Improve ssl handshake
  5. Update self-signed ssl certs for ssltest
  6. Fix docs ci
  7. Fix speedtest typo
  8. Fix UE5 compile error with vs2022

NOTE: 5.0 has been revoked

yasio - v5.0.0

Published by halx99 9 months ago

CHANGELOG

  1. Improve kcp implementation
  2. Fix pure udp not handle packet forward
  3. Improve echo_client & echo_server
  4. Improve ssl handshake
  5. Update self-signed ssl certs for ssltest
  6. Fix docs ci
  7. Fix speedtest typo
yasio -

Published by halx99 10 months ago

yasio -

Published by halx99 10 months ago

CHANGELOG

  1. Enable hres timer for Windows Universal Apps
  2. Add YASIO_NT_XHRES_TIMER to control whether forcing use undocumented NT API to setup high-resolution timer
  3. Fix yasio_ni compile error
yasio - v4.1.2

Published by halx99 11 months ago

CHANGELOG

  1. Slice sending udp data to mtu (65507) avoid send fail
yasio - v4.1.1

Published by halx99 11 months ago

CHANGELOG

  1. Fix unpack incorrect when YOPT_C_UNPACK_STRIP > 0
  2. Improve pod_vector aka array_buffer, now yasio::byte_buffer just a alias of it

Full Changelog: https://github.com/yasio/yasio/compare/v4.1.0...v4.1.1

yasio - v4.1.0

Published by halx99 about 1 year ago

CHANGELOG

  1. Change yasio-ni API yasio_create_service prototype to: YASIO_NI_API void* yasio_create_service(int channel_count, void(YASIO_INTEROP_DECL* event_cb)(yasio_event_data* event), void* user);
  2. Prob both v4, v6, v4mapped when resolve ip address
  3. Add option YOPT_S_HRES_TIMER for enable high resolution timer on win32

Full Changelog: https://github.com/yasio/yasio/compare/v4.0.0...v4.1.0

yasio - v4.0.0

Published by halx99 over 1 year ago

CHANGELOG

  1. IMPORTANT: Rename YOPT_S_DEFERRED_EVENT to YOPT_S_NO_DISPATCH, and the default event dispatch behavior was changed,
    by default, the network thread will always dispatch events at end of event loop. you must set YOPT_S_NO_DISPATCH to 1 to
    ensure the dispatch behavior match with previous releases
  2. The YOPT_S_DEFER_EVENT_CB return check changed, return true to tell io_service the event already processed, io_service will
    skip processed event, previous releases should return false
  3. Improve kcp transport, fix data retention problem(caused by interval too large) and update kcp to git 1.7-f2aa30e
  4. Add support forward packet on both send and recv stages
  5. Rename preprocessors YASIO_HAVE_ to YASIO_ENABLE_XXX, YASIO_HAVE_CARES to YASIO_USE_CARES
  6. Refactor non-blocking io mode, add epoll/wepoll, kqueue, evport support by YASIO_ENABLE_HPERF_IO, by default not enabled
  7. Remove namespace yasio::gc
  8. Improve object_pool and singleton
  9. Migrate build scripts to powershell runs on windows,linux,macos
  10. Rename cmake feature options:
    • YASIO_BUILD_WITH_LUA --> YASIO_ENABLE_LUA
    • YASIO_BUILD_WITH_CCLUA --> YASIO_ENABLE_CCLUA
    • YAISO_BUILD_NI --> YASIO_ENABLE_NI
  11. Auto disable YASIO_BUILD_TESTS and YASIO_BUILD_LUA_EXAMPLE when yasio not in root directory of cmake project
  12. Move public headers to yasio/ which are allow include directly, like yasio/xxx.hpp, private header to yasio/impl/ which don't allow been included

What's Changed

Full Changelog: https://github.com/yasio/yasio/compare/v3.39.7...v4.0.0

yasio - v3.39.12

Published by halx99 over 1 year ago

What's Changed

Full Changelog: https://github.com/yasio/yasio/compare/v3.39.11...v3.39.12

yasio - v3.39.11

Published by halx99 over 1 year ago

yasio - v3.39.10

Published by halx99 over 1 year ago

CHANGELOG

  1. Improve object_pool, ensure address of allocated object from pool align with std::max_align_t,
    should fix optimized-build crash on android x86_64.
yasio - v3.39.9

Published by halx99 over 1 year ago

CHANGELOG

  1. Remove unsafe option: YOPT_S_FORWARD_EVENT, may cause internal channel behavior incorrect.

  2. Add forward packet event support, new option: YOPT_S_FORWARD_PACKET, after enable forward packet:

    • Use event->packet_view() receive packet event
    • No upack
    • No deferred packet
    • No GC alloc
  3. Fix sort_timers may cause std::sort crash on sort callback when system clock slow

  4. Fix typo YASIO_ENABLE_PASSIVE_EVENT

  5. Fix timer queue empty check

yasio - v3.39.7

Published by halx99 almost 2 years ago

CHANGELOG

  1. Add forward event support fire packet event, new option: YOPT_S_FORWARD_EVENT, after enable forward event:

    • Use event->packet_view() receive packet event
    • No upack
    • No deferred event
    • No GC alloc
  2. Refactor ssl backends, add follow new option and channel kind

    • YOPT_S_SSL_CERT: to specific ssl server cert and private_key files
    • YCK_SSL_SERVER: open a channel as ssl server, notes: require specific valid cert and private_key file with option YOPT_S_SSL_CERT
    • Also fix crash on destructor of io_transport_ssl
  3. Improve option YOPT_S_SSL_CACERT, now support specific multi-certs with delimiter ,

  4. Improve c-ares integration

  5. Improve extesion yasio_http, move it's dependent llhttp to thirdparty and managed by git submodule

  6. Remove signal_blocker when create service thread which will cause app random stuck on startup

  7. Fix c++20 compiler warnings

yasio - v3.39.6

Published by halx99 almost 2 years ago

This release mainly change is use poll as default reactor.

yasio - v3.39.5

Published by halx99 almost 2 years ago

Fix no callback after dns resolve failed with system getaddrinfo

yasio - v3.39.4

Published by halx99 over 2 years ago

yasio - v3.39.3

Published by halx99 over 2 years ago

  1. Improve byte_buffer stl compatible
  2. Add option YOPT_C_UNPACK_NO_BSWAP
  3. Add urlEncode/urlDecode to extension yasio_http
  4. Improve extension yasio_http as unreal engine plugin
  5. Fix missing retrun statement in cxx17::string_view hasher template
  6. Change lua script io_event.packet(bool) to io_event:packet(bufferType)
    • yasio.BUFFER_DEFAULT: take packet as native yasio::ibstream
    • yasio.BUFFER_NO_BSWAP: take packet as natvie yasio::fast_ibstream without byte order convert
    • yasio.BUFFER_RAW: take packet as lua string
  7. CMake: Set default ssl backend to mbedtls
yasio - v3.39.2

Published by halx99 almost 3 years ago

CHANGELOG

  • Use byte_buffer instead std::vector<char>
  • Add extension yasio_http implementation
  • Fix name query will defunct when name server dirty

All users should update immediately.