]> ruderich.org/simon Gitweb - nsscash/nsscash.git/blob - README
Add support for group files
[nsscash/nsscash.git] / README
1 = README
2
3 Nsscash (a pun on cache) is a simple file-based cache for NSS similar to
4 nsscache [1]. The goal is to distribute users/groups/etc. to multiple systems
5 without having to rely on a (single) stable server. Traditional systems like
6 LDAP or NIS require a stable server or users/groups cannot be resolved. By
7 distributing the data to all systems, temporary outages of the server cause no
8 issues on the clients. In addition the local storage is much faster than
9 remote network access. To update the local caches polling via HTTP is
10 performed, for example every minute, only downloading new data if anything has
11 changed.
12
13 Nsscash consists of two parts: `nsscash`, written in Go, which downloads files
14 via HTTP or HTTPS, parses them, creates indices and writes the result to a
15 local file. The second part is the NSS module (`libnss_cash.so.2`), written in
16 C, which provides integration via `/etc/nsswitch.conf`. It's specifically
17 designed to be very simple and uses the prepared data for lookups. To support
18 quick lookups, in O(log n), the files utilize indices.
19
20 nsscash is licensed under AGPL version 3 or later.
21
22 [1] https://github.com/google/nsscache
23
24
25 == AUTHORS
26
27 Written by Simon Ruderich <simon@ruderich.org>.
28
29
30 == LICENSE
31
32 This program is licensed under AGPL version 3 or later.
33
34 Copyright (C) 2019  Simon Ruderich
35
36 This program is free software: you can redistribute it and/or modify
37 it under the terms of the GNU Affero General Public License as published by
38 the Free Software Foundation, either version 3 of the License, or
39 (at your option) any later version.
40
41 This program is distributed in the hope that it will be useful,
42 but WITHOUT ANY WARRANTY; without even the implied warranty of
43 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
44 GNU Affero General Public License for more details.
45
46 You should have received a copy of the GNU Affero General Public License
47 along with this program.  If not, see <https://www.gnu.org/licenses/>.
48
49 // vim: ft=asciidoc