Skip to content

Libuv Asys Implementation - #1022

Draft
Aidan63 wants to merge 164 commits into
HaxeFoundation:masterfrom
Aidan63:asys
Draft

Libuv Asys Implementation#1022
Aidan63 wants to merge 164 commits into
HaxeFoundation:masterfrom
Aidan63:asys

Conversation

@Aidan63

@Aidan63 Aidan63 commented Dec 23, 2022

Copy link
Copy Markdown
Contributor

WIP Libuv based asys api implementation. Trying to hide the libuv-ness behind a generic asys header so someone could provide an alternative asys implementation for platforms which might not support libuv but have their own. Also going to add a "NotImplementedException" asys implementation for non desktop platforms.

I've tried a base object approach instead of differing implementations behind #ifdef checks so typed objects can be passed around instead of Dynamic. I'm also using some c++ 14 features (make_unique and nested namespaces), not sure if there's a c++ version that hxcpp tries to target. I'm not married to any of this so I'm happy to change any of it.

  • Event Loop
  • File
  • Directory
  • File System
  • Net
    • Dns
    • Ip
    • Socket
    • Server
    • UdpSocket
    • SecureSocket
    • SecureServer
  • Processes
    • stdio pipe to file paths.
  • Signals
  • Streams

Other TODO:

  • Ensure all uv_handle_t's are cleaned up when things fail (look into custom unique_ptr's to automate this)
  • Move some stuff out of C++ and into haxe (I would like to move all the queuing stuff into haxe, easier than faffing around with state in a C API).
  • Double check all GC and heap object cleanup
  • Change all uses of Dynamic to typed callables (depends on [cpp] Generate Typed Functions haxe#11151)
  • Reduce dependency to C++ 11.
  • Revive branch I experimented on a while ago to mark hx::Throw as no-return.

@skial skial mentioned this pull request Jan 4, 2023
1 task
Aidan63 added 30 commits March 30, 2024 16:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants