Time handling improvements
[8sync.git] / README.org
1 #+TITLE: 8sync: an asynchronous programming library for Guile
2
3 8sync (pronounced "eight-sync") is an asynchronous programming library
4 for [[https://www.gnu.org/software/guile/][GNU Guile]].
5
6 Some features:
7  - An asynchronous event loop!  Non-blocking on ports and file access.
8  - Easy to use!  The =%sync= / =8sync= operator lets you write
9    asynchronous code that looks simple while avoiding callback hell.
10    This happens through the magic of [[https://www.gnu.org/software/guile/manual/html_node/Prompts.html][delimited continuations]].
11    ([[https://www.gnu.org/software/guile/manual/html_node/Shift-and-Reset.html#Shift-and-Reset][Hence the %]]!)
12  - Provides building blocks on which you can build other asynchronous
13    frameworks or paradigms on top of it (some of which will be
14    included in the future), like:
15    - an actor model implementation
16    - the propagator model
17    - web frameworks
18    - your very heart's desire!
19
20 * How do I use it?
21
22 Hey, I ought to get some docs up, right?
23
24 * License
25
26 Everything in here is LGPL v3 or later, as published by the Free
27 Software Foundation, with exceptions below:
28
29  - Some autotools related files are under the GPL v3 or later in the
30    toplevel directory (their headers will say).  I guess if you
31    compile things using them, maybe this project becomes GPL v3 or
32    later?  I don't think so because the build tools themselves aren't
33    linked, but I can't be sure.  If you really care, consider this
34    whole project GPL v3 or later optionally... anyway a
35    COPYING-gplv3.txt is included for these reasons.