Skip to content

Commit 93a9614

Browse files
committed
Update README.md
1 parent 4554c78 commit 93a9614

File tree

1 file changed

+12
-55
lines changed

1 file changed

+12
-55
lines changed

README.md

Lines changed: 12 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -15,79 +15,36 @@ Ask not what Quid2 can do for you but rather what you can do for Quid2!
1515

1616
Quid2 is under intense development and not all its parts are currently documented and usable.
1717

18-
There is however a part of it that is quite usable and that you might be interested in ..
19-
20-
### Quid2-Net, a minimalist content-oriented transport protocol
21-
22-
Most widely used Internet transport protocols are point-to-point, think [TCP](https://en.wikipedia.org/wiki/Transmission_Control_Protocol) or [HTTP](https://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol).
23-
24-
quid2-net is, on the contrary, a content-oriented protocol.
25-
26-
Data does not flow from A to B but rather all data of the same type flows on a single, globally unique, channel.
27-
28-
Briefly:
29-
* For every data type there is a corresponding channel
30-
* A channels transfer only data values of its associate type
31-
* Anyone can send and receive data values
32-
33-
You can [see it in action](http://quid2.org/app/ui).
34-
35-
Under the *Channels* tab are listed the currently open channels, every channel has a type and you can see its full definition by clicking on *Definition*.
36-
37-
Definitions are just plain algebraic data types (with a couple of restrictions: data types definitions cannot be mutually recursive and variables can appear only in kind * positions).
38-
39-
For example, you should see a *Message* channel that is used to implement a simple chat system. Click on *Show Values* to inspect the value being transferred and then use the [chat user interface](http://quid2.org/app/chat) to login and send a couple of messages and see them appear on the channel.
40-
41-
Under the *Types* tab, is the list of types known to the system.
42-
43-
#### Minimalist and Evolvable
44-
45-
quid2-net does not provide any other service beyond full-duplex typed communication, any other service (e.g. identification or encryption) has to be provided by the clients themselves but that can be done easily and independently by simply creating data types that stands for the additional functionality required.
46-
47-
#### Current Implementation
48-
49-
Though quid2-net is eventually meant to develop into an universal, vendor-free tranport protocol, its current incarnation is provided by a single central router.
50-
51-
Channel could in principle be implemented using different network protocols, currently they are based on [websockets]( https://en.wikipedia.org/wiki/WebSocket), so they are full-duplex, HTTP compatible, TCP connections.
52-
53-
#### APIs
54-
55-
Currently the quid2-net API is available only for the [Haskell](http://www.haskell.org) language, see [quid2-net](https://github.com/tittoassini/quid2-net).
56-
57-
APIs for other programming languages are planned and help would be greatly appreciated.
58-
59-
### How Do I Use It?
60-
61-
Install Quid2 as specified below and then look at [quid2-net-apps](https://github.com/tittoassini/quid2-net-apps) and [quid2-net-apps-ghcjs](https://github.com/tittoassini/quid2-net-apps-ghcjs) for examples of how to develop stand-alone and www applications.
18+
There is however a part of it that is quite usable and possibly also useful: [top](https://github.com/tittoassini/top), the typed oriented protocol.
6219

6320
### Included and Related Projects
6421

6522
The sub projects are:
66-
* [quid2-net-apps-ghcjs](https://github.com/tittoassini/quid2-net-apps-ghcjs)
67-
* Example WWW applications for [quid2-net](https://github.com/tittoassini/quid2-net), using [ghcjs](https://github.com/ghcjs/ghcjs).
68-
* [quid2-net-apps](https://github.com/tittoassini/quid2-net-apps)
69-
* Example applications for [quid2-net](https://github.com/tittoassini/quid2-net).
70-
* [quid2-net](https://github.com/tittoassini/quid2-net)
71-
* API for quid2-net, a *simple*, *accurate* and *free* messaging service.
23+
* [top-apps-ghcjs](https://github.com/tittoassini/top-apps-ghcjs)
24+
* Example WWW applications for [top](https://github.com/tittoassini/top), using [ghcjs](https://github.com/ghcjs/ghcjs).
25+
* [top-apps](https://github.com/tittoassini/top-apps)
26+
* Example applications for [top](https://github.com/tittoassini/top).
27+
* [top](https://github.com/tittoassini/top)
28+
* API for top, the typed oriented protocol.
7229
* [typed](https://github.com/tittoassini/typed)
7330
* Language independent, absolute types.
7431
* [flat](https://github.com/tittoassini/flat)
7532
* Principled and efficient serialization.
7633
* [model](https://github.com/tittoassini/model)
7734
* Derivation of data type models from Haskell data types.
7835

79-
A related project is [router](https://github.com/tittoassini/router), the message router used to implement the [quid2-net](https://github.com/tittoassini/quid2-net) service.
36+
A related project is [router](https://github.com/tittoassini/router), the message router used to implement the [top](https://github.com/tittoassini/top) service.
8037

8138
### Installation
8239

8340
`git clone --recursive https://github.com/tittoassini/quid2.git;cd quid2;stack build`
8441

85-
This will retrieve the whole quid2 suite and build all subprojects except [quid2-net-apps-ghcjs](https://github.com/tittoassini/quid2-net-apps-ghcjs), as setting up ghcjs takes a long time.
42+
This will retrieve the whole quid2 suite and build all subprojects except [quid2-net-apps-ghcjs](https://github.com/tittoassini/top-apps-ghcjs), as setting up ghcjs takes a long time.
8643

87-
To verify that all works, start up the `quid2-chat` program:
44+
To verify that all works, start up the `top-chat` program:
8845

8946
```
90-
stack exec quid2-chat
47+
stack exec top-chat
9148
9249
Enter your name:
9350
titto
@@ -96,7 +53,7 @@ Help:
9653
To send a message: just enter it and press return.
9754
To exit: Ctrl-D.
9855
99-
Current Subject: (quid2-net)
56+
Current Subject: (Haskell)
10057
10158
Hello!
10259
```

0 commit comments

Comments
 (0)