vibe-core/README.md

29 lines
1.7 KiB
Markdown
Raw Normal View History

vibe.d core module
==================
2016-10-04 15:52:46 +00:00
This is the designated successor of the `vibe-d:core` sub package of [vibe.d 0.7.x](https://github.com/rejectedsoftware/vibe.d.git). The API is mostly compatible from a library user point of view, but the whole library has received some heavy lifting under the surface, close to a rewrite. Most classes have been replaced by reference counting structs and `@safe nothrow` attributes are now used throughout the library, whenever possible. Adding `@nogc` still has to be decided, because of its viral nature.
Another major design change is that instead of the previous driver model, there is now a separate, lower-level event loop abstraction ([eventcore](https://github.com/vibe-d/eventcore.git)) which follows a callback based Proactor pattern. The logic to schedule fibers based on events has been pulled out of this abstraction and is now maintained as a single function, leaving to a huge improvment in terms of robustness (most issues in the previous implementation have probably never surfaced in practice, but there turned out to be lots of hidden bugs).
2017-01-31 10:50:06 +00:00
The implementation is mostly finished, except for final production testing.
2017-01-31 10:50:06 +00:00
[![DUB Package](https://img.shields.io/dub/v/vibe-core.svg)](https://code.dlang.org/packages/vibe-core)
[![Build Status](https://travis-ci.org/vibe-d/vibe-core.svg?branch=master)](https://travis-ci.org/vibe-d/vibe-core)
2016-10-04 15:52:46 +00:00
Progress
--------
Feature | State
--------------------|---------
Task scheduling | done
Concurrency | done
2017-01-15 13:18:13 +00:00
Streams | done (may be subject to smaller changes)
2016-10-25 06:57:25 +00:00
DNS lookup | done
2016-10-04 15:52:46 +00:00
TCP connections | done
2017-01-15 21:22:53 +00:00
UDP connections | done
2016-10-06 20:21:29 +00:00
File I/O | done
2016-10-25 06:57:25 +00:00
Directory watchers | done
2017-01-15 13:18:13 +00:00
ManualEvent | done
Path/URL types | done