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