[Libevent-users] dumb question

2009-02-19 Thread jamal

I hope i come out sound patronizing or putting down the good
work done in libevent.

Is libevent trying to be too many things? I love the 
all-things-IO libevent provides; i guess buffer events are a natural
evolution path - but why all the DNS or HTTP stuff? whats next?
Is the end goal to become the one stop shop for all protocols
(like python twisted)?
I know i dont have to use or compile all the goodies, but 
would it not make more sense to keep the protocol processing
engines as a separate library that uses libevent (or for
that matter whatever the competition is)?

cheers,
jamal

___
Libevent-users mailing list
Libevent-users@monkey.org
http://monkeymail.org/mailman/listinfo/libevent-users


Re: [Libevent-users] dumb question

2009-02-19 Thread Adrian Chadd
On Thu, Feb 19, 2009, jamal wrote:
 
 I hope i come out sound patronizing or putting down the good
 work done in libevent.
 
 Is libevent trying to be too many things? I love the 
 all-things-IO libevent provides; i guess buffer events are a natural
 evolution path - but why all the DNS or HTTP stuff? whats next?
 Is the end goal to become the one stop shop for all protocols
 (like python twisted)?

 I know i dont have to use or compile all the goodies, but 
 would it not make more sense to keep the protocol processing
 engines as a separate library that uses libevent (or for
 that matter whatever the competition is)?

I brought this up with Nick a couple weeks ago when we bumped into
each other.

I raised the possibility of breaking out the non-event code into
separate libraries with enforced API boundaries. We were talking
about various directions 2.0 can go in (in the context of doing
sensible async IO that will scale under both windows and unix,
given their differences of opinion in APIs :) but Nick's design
goals differ slightly from my ideals.



Adrian

___
Libevent-users mailing list
Libevent-users@monkey.org
http://monkeymail.org/mailman/listinfo/libevent-users


Re: [Libevent-users] dumb question

2009-02-19 Thread Matthew Weigel

jamal wrote:

Is libevent trying to be too many things? I love the 
all-things-IO libevent provides; i guess buffer events are a natural

evolution path - but why all the DNS or HTTP stuff?


The DNS and HTTP stuff is there so people don't have to constantly 
re-invent those tasks themselves.  How often do you connect to a remote 
host without doing DNS lookups?  From another perspective, another 
completely different library for asynchronous I/O - Boost.Asio - also 
provides asynchronous resolver functions, because the author of that 
library had pretty much exactly the same conclusion.


For HTTP... well, the doxygen on the subject seems pretty 
self-explanatory: As libevent is a library for dealing with event 
notification and most interesting applications are networked today, I 
have often found the need to write HTTP code. The following prototypes 
and definitions provide an application with a minimal interface for 
making HTTP requests and for creating a very simple HTTP server.


The server software I've written that *didn't* include an embedded web 
server for management was being moved in that direction to meet the 
needs of the operational staff; it's just part and parcel of servers 
these days.  Right now I'm using Boost.Asio instead of libevent 
(probably better if you're working in C++, but not an option in C), but 
because of that I'm having to do work that libevent provides out of the box.



whats next?


What other protocols or services are commonly required by virtually 
every client, or virtually every server?



Is the end goal to become the one stop shop for all protocols
(like python twisted)?


I think the end goal is to be a useful library for writing clients and 
servers that want to do I/O asynchronously.


I know i dont have to use or compile all the goodies, but 
would it not make more sense to keep the protocol processing

engines as a separate library that uses libevent (or for
that matter whatever the competition is)?


It could make sense, but what is the benefit to the separation?  How 
many people using libevent will never use evdns or evhttp?

--
 Matthew Weigel
 hacker
 unique  idempot . ent
___
Libevent-users mailing list
Libevent-users@monkey.org
http://monkeymail.org/mailman/listinfo/libevent-users


Re: [Libevent-users] dumb question

2009-02-19 Thread Martin Scholl
Hello all,


if with async io is meant doing native async disc / file io, then
there already is code that integrates with libevent-2.0.
Recently, Valery Kholodkov and myself did some work in this direction.
The latest version you can find in Valery's git tree right here:

http://github.com/vkholodkov/libevent/tree/valery-master
.

What I can say is, that the linux native AIO was stable with several
long-running tests ( 300mb/s for longer than 1 day) even in
multi-threaded environments.

I am not up to date with the latest libevent developments @ trunk, so
please just ignore this email if it might prove redundant!


Martin


Adrian Chadd wrote:
 On Thu, Feb 19, 2009, jamal wrote:
 I hope i come out sound patronizing or putting down the good
 work done in libevent.

 Is libevent trying to be too many things? I love the 
 all-things-IO libevent provides; i guess buffer events are a natural
 evolution path - but why all the DNS or HTTP stuff? whats next?
 Is the end goal to become the one stop shop for all protocols
 (like python twisted)?
 
 I know i dont have to use or compile all the goodies, but 
 would it not make more sense to keep the protocol processing
 engines as a separate library that uses libevent (or for
 that matter whatever the competition is)?
 
 I brought this up with Nick a couple weeks ago when we bumped into
 each other.
 
 I raised the possibility of breaking out the non-event code into
 separate libraries with enforced API boundaries. We were talking
 about various directions 2.0 can go in (in the context of doing
 sensible async IO that will scale under both windows and unix,
 given their differences of opinion in APIs :) but Nick's design
 goals differ slightly from my ideals.
 
 
 
 Adrian
 
 ___
 Libevent-users mailing list
 Libevent-users@monkey.org
 http://monkeymail.org/mailman/listinfo/libevent-users

___
Libevent-users mailing list
Libevent-users@monkey.org
http://monkeymail.org/mailman/listinfo/libevent-users


Re: [Libevent-users] dumb question

2009-02-19 Thread Adrian Chadd
On Thu, Feb 19, 2009, Nick Mathewson wrote:

 If I understand correctly, Adrian, you also think that bufferevent-ish
 stuff should have API-separation from the event-ish stuff (which I
 believe in) and that it should go into a separate library from
 libevent_core (which I don't agree with, but I don't feel too strongly
 about).

I think its fine if they're in the same project, but I don't think they
should be sharing library space or header files.

That way you can be 100% sure that stuff doesn't depend on other stuff
unexpectedly - you'll get compile / link errors.

So you'd have libevent_core, libevent_dns, libevent_http, etc, etc.

 The remaining question here is whether (and to what extent) to split
 non-libevent-core stuff into a separate source package.  I don't feel
 strongly here either; there are arguments for keeping it in one source
 package and arguments for splitting it.  Personally, I think it's one
 of those bikeshed issues whose accessibility garners it attention
 beyond its actual impact.  Probably we should revisit it after
 Libevent 2.0 is out; there is enough architectural stuff slated for
 2.0 already IMO.

I'm happy to wait for post-2.0 to discuss this stuff further.
I don't have enough time to discuss it now. :)



adrian

___
Libevent-users mailing list
Libevent-users@monkey.org
http://monkeymail.org/mailman/listinfo/libevent-users