Commit | Line | Data |
---|---|---|
84004dbf RS |
1 | LIBNFS is a client library for accessing NFS shares over a network. |
2 | ||
3 | LIBNFS offers three different APIs, for different use : | |
4 | 1, RAW : A fully async low level rpc library for nfs protocols | |
5 | This API is described in include/libnfs-raw.h | |
6 | it offers a fully async interface to raw XDR encoded blobs. | |
7 | This api provides very flexible and precice control of the RPC issued. | |
8 | ||
9 | examples/nfsclient-raw.c provides examples on how to use the raw API | |
10 | ||
11 | 2, NFS ASYNC : A fully asynchronous library for high level vfs functions | |
12 | This API is described by the *_async() fucntions in include/libnfs.h. | |
13 | This API provides a fully async access to posix vfs like functions such as | |
14 | stat(), read(), ... | |
15 | ||
16 | examples/nfsclient-async.c provides examples on how to use this API | |
17 | ||
18 | ||
19 | 3, NFS SYNC : A synchronous library for high level vfs functions | |
20 | This API is described by the *_sync() fucntions in include/libnfs.h. | |
21 | This API provides access to posix vfs like functions such as | |
22 | stat(), read(), ... | |
23 | ||
24 | examples/nfsclient-sync.c provides examples on how to use this API | |
f7b81274 RS |
25 | |
26 | ||
27 | ||
28 | ROOT vs NON-ROOT | |
29 | ================ | |
30 | When running as root, libnfs tries to allocate a system port for its connection | |
31 | to the nfs server. When running as non-root it will use a normal | |
32 | ephemeral port. | |
33 | Many NFS servers default to a mode where they do not allow non-system | |
34 | ports from connecting. | |
35 | These servers require you use the "insecure" export option in /etc/exports | |
36 | in order to allow libnfs clients to be able to connect. | |
2461e211 | 37 | |
22e73f32 RS |
38 | Some versions of Linux support special capabilities that can be assigned to |
39 | programs to allow non-root users to bind to system ports. | |
40 | This is set up by running | |
41 | sudo setcap 'cap_net_bind_service=+ep' /path/to/executable | |
42 | When libnfs is linked against an executable with this special capability | |
43 | assigned to it, libnfs may be able to use system ports even when executing | |
44 | under the privilege of a non-root user account. | |
45 | ||
46 | This is highly non-portable so IF this works on your linux system, count | |
47 | yourself lucky. | |
48 | ||
49 | ||
50 | ||
9f88cb06 | 51 | PLATFORM support |
2461e211 | 52 | ================= |
e267bb12 | 53 | This is a truly multiplatform library. |
2461e211 M |
54 | |
55 | Linux: - tested with Ubuntu 10.04 - should work with others aswell | |
c03a1e82 | 56 | Cygwin: - tested under 64bit win2k8. |
2461e211 M |
57 | MacOSX: - tested with SDK 10.4 (under Snow Leopard) - should also work with later SDKs and 64Bit |
58 | iOS: - tested with iOS SDK 4.2 - running on iOS 4.3.x | |
9f88cb06 | 59 | FreeBSD:- tested with 8.2 |
e267bb12 | 60 | Solaris |
fcc42bfe | 61 | Windows:- tested on Windows 7 64 and Windows XP 32 using Visual Studio 10 (see README.win32.txt for build instructions) |
8afcdc95 | 62 | Android: |
e267bb12 | 63 | AROS: - Build with 'make -f aros/Makefile.AROS' |
c03a1e82 | 64 | |
6494f8fc RS |
65 | |
66 | RELEASE TARBALLS | |
67 | ================ | |
68 | Release tarballs are available at https://github.com/sahlberg/libnfs/downloads | |
69 | ||
70 | ||
71 | ||
72 | MAILINGLIST | |
73 | =========== | |
74 | A libnfs mailinglist is available at http://groups.google.com/group/libnfs | |
75 | Announcements of new versions of libnfs will be posted to this list. | |
76 |