summaryrefslogtreecommitdiffstats
path: root/README.md
blob: 4cb06a9d73cee0992c12e291103ad8ef2cb43f1d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
General Information
======================

KIRO is the KITs InfiniBand remote communication library.
It provides a simple server and client class that can be used to pass arbitrary
information from the server to the client using _native_ InfiniBand
communication.
It also provides a network transmittable ring-buffer (TRB) which can be used as
a transmission container for same-sized objects.

The library is optimized for speed and ease of use.


Installation
=====================

Please refer to the INSTALL file of this project.


Usage
====================

Example KIRO server usage

```
#include <kiro-server.h>
...

int memSize = 42;
void *mem = malloc(memSize); //This is the memory we want to provide

KiroServer *server = kiro_server_new ();

const char *address = "192.168.1.1";
const char *port = "60010";
kiro_server_start (server, address, port,  mem, memSize);
// The KIRO server is now running

...

kiro_server_stop (server);
kiro_server_free (server);

...
```

Example KIRO client usage
```
#include <kiro-client.h>
...

KiroClient *client = kiro_client_new ();

const char *address = "192.168.1.1";
const char *port = "60010";

kiro_client_connect (client, address, port);
//The client is now connected

kiro_client_sync (client);

void *mem = kiro_client_get_memory (client);

kiro_client_free (client);
```

For TRB usage, check the examples in the _test_ directory


Licensing
=====================

kiro is copyright to the Karlsruhe Institute of Technology and licensed under
the LGPL 2.1.