A good comparison is that Hazel is a networking library and DarkRift is a networking solution.In my opinion this feature is not needed in OS X due to the fundamentally different relationship between applications and the system compared with Windows, by design. That said, I'm still happy to merge any pull requests if they come through, so if you do make any improvements I'll happily add them.ĭefinitely a fair thing to say, although DarkRift is still low level for a networking solution. You are right, there are some horrendous allocations in there! I don't really do that much on Hazel anymore because DarkRift takes most of my dev time so it's unlikely I will add pooling at any point. Not really, Hazel leaves that up to you in whatever steps you do to create the byte array.ĥ. It's not too hard to change any details for TCP (including number of bytes for length) but changing UDP is a bit complicated, just because there's a lot more complicated code in there!Ĥ. The information on the TCP page is correct, the UDP one seems to be missing fragmentation but is otherwise right. Hazel will never hand you incomplete data so you will only ever get whole messages, reassembled already.ģ. You might notice some differences when switching between them but only that one or the other takes more packets etc. Hazel has fragmentation on both TCP and UDP (TCP by default, UDP only with SendOption.FragmentedReliable on the message). You are correct, Hazel has no serializer so only deals with already serialized byte arrays.Ģ. Is there setting to prefix message length as a Int16 or better VarInt (dynamic 7bit int) instead? If not, do you think it would be easy to change in the code (easy as in not tons of code that implicitly assumes a 4 byte length header)Ĥ) Does this library provide some sorts of channels, like ReliableOrdered, ReliableSequenced or others?ĥ) Any plans to implement some pooling? There are huge non-pooled allocations everywhere ( like this one or this one here)Īlso, from what I can see DarkRift is trying to be more of a package that does all kinds of additional things, while Hazel is more of a low-level thing, is that fair to say?ġ. Is that right? But if it does have one, can it be disabled/bypassed? I want to use my own serialization library.Ģ) It seems it only supports sending byte-arrays, which is pretty much perfect for me, but am I correct in assuming that it handles fragmentation / re-assembling of packets? Will I ever get incomplete data that I have to re-assemble myself? What about switching between UDP and TCP, will that change anything in that regard? I'm currently looking for a networking library that provides connection handling / fragmentation(and re-assembling of packets),ġ) I didn't find anything about that, but it does seem like Hazel does not have any sort of serializer. Can't find /Library/Frameworks//Versions/Current/Version.Ĭan't find mtouch or the Version file at /Library/Frameworks//Versions/Current. '/Applications/Xamarin Profiler.app' not found I copy your server example from docs, but I have this problems: I start to test your Hazel Library using Xamarin Studio.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |