Thread overview | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
April 26, 2012 Introducing vibe.d! | ||||
---|---|---|---|---|
| ||||
During the last few months, we have been working on a new framework for general I/O and especially for building extremely fast web apps. It combines asynchronous I/O with core.thread's great fibers to build a convenient, blocking API which can handle insane amounts of connections due to the low memory and computational overhead. Some of its key fatures are: - Very fast but no endless callback chains as in node.js and similar frameworks - Concise API that tries to be as efficient and intuitive as possible - Built-in HTTP server and client with support for HTTPS, chunked and compressed transfers, keep-alive connections, Apache-style logging, a reverse-proxy, url routing and more - Jade based HTML/XML template system with compile-time code generation for the fastest dynamic page generation times possible - Built-in support for MongoDB and Redis databases - WebSocket support - Natural Json and Bson handling - A package manager for seemless use of extension libraries See http://vibed.org/ for more information and some example applications (there are some things in the works such as an etherpad clone and an NNTP server). vibe.d is in a working state and enters its first beta-phase now to stabilize the current feature set. After that, a small list of additional features is planned before the 1.0 release. The framework can be downloaded or GIT cloned from http://vibed.org/ and is distributed under the terms of the MIT license. Note that the website including the blog is fully written in vibe and provides the first stress test for the implementation. Regards, Sönke |
April 26, 2012 Re: Introducing vibe.d! | ||||
---|---|---|---|---|
| ||||
Posted in reply to Sönke Ludwig | Wow, thanks :) Definately going to play with it. |
April 26, 2012 Re: Introducing vibe.d! | ||||
---|---|---|---|---|
| ||||
Posted in reply to ponce | Am 26.04.2012 23:18, schrieb ponce:
> Wow, thanks :)
> Definately going to play with it.
Same here, I think using vibe with nginx as reverse proxy will work great!
|
April 26, 2012 Re: Introducing vibe.d! | ||||
---|---|---|---|---|
| ||||
Posted in reply to Sönke Ludwig | Looks promising. Though I wouldn't know how to choose between Adam's web framework, Cybershadow's code (seemed like he coded the newsreader in no time and it works very nicely) and yours. Any advice? |
April 26, 2012 Re: Introducing vibe.d! | ||||
---|---|---|---|---|
| ||||
Posted in reply to Sönke Ludwig | Sönke Ludwig: > See http://vibed.org/ for more information and some example I see the code: > import vibe.d; > ... > static this() > { > listenTcp(7, (conn){ conn.write(conn) }); > } Isn't it better to use this? import vibe.all; And in the last line is a semicolon missing? listenTcp(7, (conn){ conn.write(conn); }); Bye, bearophile |
April 26, 2012 Re: Introducing vibe.d! | ||||
---|---|---|---|---|
| ||||
Posted in reply to Sönke Ludwig | On 26/04/2012 21:46, Sönke Ludwig wrote: > vibe.d This looks awesome! Also on reddit: http://www.reddit.com/r/programming/comments/su9la/vibed_asynchronous_io_that_doesnt_get_in_your_way/ and hacker news: https://news.ycombinator.com/item?id=3896197 -- Robert http://octarineparrot.com/ |
April 26, 2012 Re: Introducing vibe.d! | ||||
---|---|---|---|---|
| ||||
Posted in reply to Sönke Ludwig | On Thursday, 26 April 2012 at 20:46:41 UTC, Sönke Ludwig wrote:
> During the last few months, we have been working on a new
> framework for general I/O and especially for building
> extremely fast web apps.
Very nice, amazing job! This is like my personal plans and hopes coming to life.
|
April 26, 2012 Re: Introducing vibe.d! | ||||
---|---|---|---|---|
| ||||
Posted in reply to Robert Clipsham | On Thursday, 26 April 2012 at 22:05:29 UTC, Robert Clipsham wrote:
> On 26/04/2012 21:46, Sönke Ludwig wrote:
>> vibe.d
>
> This looks awesome!
>
> Also on reddit:
> http://www.reddit.com/r/programming/comments/su9la/vibed_asynchronous_io_that_doesnt_get_in_your_way/
>
> and hacker news:
> https://news.ycombinator.com/item?id=3896197
Now look what you did, you killed it.
|
April 27, 2012 Re: Introducing vibe.d! | ||||
---|---|---|---|---|
| ||||
Posted in reply to Jesse Phillips | On 4/26/12 3:30 PM, Jesse Phillips wrote:
> On Thursday, 26 April 2012 at 22:05:29 UTC, Robert Clipsham wrote:
>> On 26/04/2012 21:46, Sönke Ludwig wrote:
>>> vibe.d
>>
>> This looks awesome!
>>
>> Also on reddit:
>> http://www.reddit.com/r/programming/comments/su9la/vibed_asynchronous_io_that_doesnt_get_in_your_way/
>>
>>
>> and hacker news:
>> https://news.ycombinator.com/item?id=3896197
>
> Now look what you did, you killed it.
Are the Vibe people on this? Though the intent is very nice, this is not looking great right now.
Andrei
|
April 27, 2012 Re: Introducing vibe.d! | ||||
---|---|---|---|---|
| ||||
Posted in reply to bearophile | Am 26.04.2012 23:59, schrieb bearophile:
> Sönke Ludwig:
>
>> See http://vibed.org/ for more information and some example
>
> I see the code:
>
>> import vibe.d;
>> ...
>> static this()
>> {
>> listenTcp(7, (conn){ conn.write(conn) });
>> }
>
> Isn't it better to use this?
>
> import vibe.all;
>
> And in the last line is a semicolon missing?
>
> listenTcp(7, (conn){ conn.write(conn); });
>
> Bye,
> bearophile
Ah yes, the semicolon got lost while transforming "conn => conn.write(conn)" to "(conn){ conn.write(conn); }" because the lamdba syntax was a bit surprising there.
The "import vibe.d;" is actually just a play on the frameworks name and just should be easy to remember. In addition to importing all modules, it also imports a module containing the main function, so this is a special beast. But there is actually a "import vibe.vibe;" which is the equivalent to the "vibe.all".
Sönke
|
Copyright © 1999-2021 by the D Language Foundation