

An introduction to libuv - vacipr
http://nikhilm.github.com/uvbook/

======
laaph
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.

------
shin_lao
How does libuv fare compared to Boost.Asio?

~~~
tptacek
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.

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

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

~~~
pcwalton
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.

~~~
ryah
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.

------
sigil
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>

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

~~~
chubot
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.

~~~
ChuckMcM
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.

~~~
rck
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.

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

