asyncnss
New async implementation of NSS/Name Service Switch
At the deepest, lowest levels of the software stack, some functions - such as getaddrinfo() that performs name resolution - are ubiquitously used by applications, they are synchronous (they do not return until they have the full result), and they potentially make network calls, which may block for unbounded amounts of time. This is a problem when an application needs to make several calls to these functions: either they call them serially which compounds the waiting time, or they resort to workaround strategies which makes them significantly more complex. asyncnss solves this by providing an asynchronous API to a set of commonly used synchronous libc functions, with a mechanism that integrates seamlessly with classic Unix asynchronous event loops. It also isolates glibc's nsswitch module loading in a separate process, tightening the security of the client application.
- The project's own website: https://skarnet.org/software/asyncnss/
This project was funded through the NGI0 Commons Fund, a fund established by NLnet with financial support from the European Commission's Next Generation Internet programme, under the aegis of DG Communications Networks, Content and Technology under grant agreement No 101135429. Additional funding is made available by the Swiss State Secretariat for Education, Research and Innovation (SERI).