Hacker News new | past | comments | ask | show | jobs | submit login
An introduction to libuv (nikhilm.github.com)
62 points by vacipr on Sept 7, 2012 | hide | past | favorite | 16 comments



How does libuv fare compared to Boost.Asio?


In what sense? The data structures behind it? The capabilities? Boost.asio doesn't do filesystem watching (last I checked). The API? At the end of the day, if you're using Boost, you're probably going to prefer Asio; libuv is somewhat more powerful.

It might have more to do with whether you prefer C++ or C.


libuv was created by the guys that make NodeJS to make a cross platform IOCP layer for Windows and Unix


As someone with no idea what libuv is, the book certainly doesn't explain what it is very well in the first few pages.

> This ‘book’ is a small set of tutorials about using libuv as a high performance evented I/O library which offers the same API on Windows and Unix.

Okay.

> You will use libuv purely in the context of node.js. For this you will require some other resources as the book does not cover parts specific to v8/node.js.

A library for node.js, I take it? My best guess is that libuv provides a way for using C code in javascript.


+1 Nice, I am reading it.. By the way, servo is using it. Right?


Yes, Rust and Servo both use libuv as the native async I/O layer. It's been fantastic for us as an easy-to-use API that works on Windows. Kudos to Ryan Dahl and Joyent for creating it.


Kudos should go to Bert Belder and Ben Noordhuis of Cloud9 who built much of libuv and Igor Zinkovsky of Microsoft has contributed a lot of important work as well. As well many other contributors.




yes, thank you very much for updating with the correct one


libev user here. While I couldn't care less about portability to windows, if libuv really does improve libev's performance on unix then consider me interested:

https://github.com/joyent/libuv/issues/485


This is really awesome stuff, has anyone built a mobile robot application on top of it?


Why would you do that? The main point of it is to be portable across Windows and Unix, and I can't imagine that many robots care about that. It was developed for node.js. If your robots were running Unix then I imagine you would just use the normal C APIs or something like libev.


Well for a long time folks have built robots by putting a laptop on to a powered set of wheels. Some folks are more comfortable with Windows, others more comfortable with Linux. Recently there has been a surge of 'android' robots as well with folks re-purposing phones and tablets to the task of controller.

The 'style' of this programming is often very much event driven. Seems like a common base would be useful.


You're right that an event-driven style is useful for programming mobile robots, but a lot of the time the tricky part is actually generating events (usually from sensors) in the first place. I haven't seen anyone use libuv for this sort of infrastructure, but ROS (www.ros.org) provides everything you need for mobile (and other forms of) robotics: publish-subscribe message passing, client-server, wrappers for common robot platforms. I think it has essentially the functionality you're talking about.


Very nice library - documentation is only 50% done, lots of blanks.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: