An asynchronous programming library for GNU Guile

Christopher Allan Webber f3705f0b00 Add generic GNU style INSTALL file 4 years ago
8sync 2effa4a7e6 agenda: Rename %8sync (and %8sync-*) to 8sync (and 8sync-*) 4 years ago
build-aux bac983c63c build: Add `git-to-changelog' and make use of it in `Makefile.am'. 4 years ago
demos c4732ac175 Adding absolute basic webdev environment 4 years ago
doc 7192e418fd doc: Add scaffolding for new chapters 4 years ago
tests 2effa4a7e6 agenda: Rename %8sync (and %8sync-*) to 8sync (and 8sync-*) 4 years ago
.gitignore 794d4fb962 Successfully build doc/8sync.texi skeleton manual 4 years ago
COPYING ab8b595ef6 Rename LICENSE -> COPYING 4 years ago
COPYING-gplv3.txt 302b13a687 Add GPLv3 and a simple README 4 years ago
INSTALL f3705f0b00 Add generic GNU style INSTALL file 4 years ago
Makefile.am 9f9dd8c152 build: Add COPYING-gplv3 to EXTRA_DIST 4 years ago
NEWS f86bd5169c Update %8sync -> 8sync in NEWS and README.md 4 years ago
README 9e860d62e1 Move README.md to README 4 years ago
bootstrap.sh 2425363fe0 Adding automake stuff 4 years ago
configure.ac 26f5d8d8a9 Fail configure when GUILE_PROGS cannot be found 4 years ago
env.in 2425363fe0 Adding automake stuff 4 years ago
package.scm 9cc64faba4 Add guix package. 4 years ago
pre-inst-env.in 2425363fe0 Adding automake stuff 4 years ago

README

8sync: an asynchronous programming library for Guile
====================================================

GNU 8sync (pronounced "eight-sync") is an asynchronous programming
library for [GNU Guile](https://www.gnu.org/software/guile/).

Be warned: it is early days for the 8sync project. New contributors
and users are more than welcome, but beware API instability.

Some features:
- An asynchronous event loop! Non-blocking on ports and file access.
- Easy to use! The =8sync= operator lets you write
asynchronous code that looks simple while avoiding callback hell.
This happens through the magic of
[delimited continuations](https://www.gnu.org/software/guile/manual/html_node/Prompts.html).
([Hence the %](https://www.gnu.org/software/guile/manual/html_node/Shift-and-Reset.html#Shift-and-Reset)!)
- Provides building blocks on which you can build other asynchronous
frameworks or paradigms on top of it (some of which will be
included in the future), like:
- an actor model implementation
- the propagator model
- web frameworks
- your very heart's desire!

How do I use it?
----------------

For now, read the source ;)

Hey, I ought to get some docs up, right? Soon, I promise!


License
-------

Everything in here is LGPL v3 or later, as published by the Free
Software Foundation, with exceptions below:

- Some autotools related files are under the GPL v3 or later in the
toplevel directory (their headers will say). I guess if you
compile things using them, maybe this project becomes GPL v3 or
later? I don't think so because the build tools themselves aren't
linked, but I can't be sure. If you really care, consider this
whole project GPL v3 or later optionally... anyway a
COPYING-gplv3.txt is included for these reasons.