diff --git a/README.md b/README.md index ca904b8..8224125 100644 --- a/README.md +++ b/README.md @@ -20,20 +20,19 @@ pre-cached `nscd`, ~8 milliseconds with `turbonss`. Project status -------------- -The project is finished and is not recommended for production; just use nscd. -Turbonss duly implements the full user/group API in `src/libnss.zig`: feel free -to copy that. turbonss is only 2-5 times faster than nscd, which usually does -not matter (including for my original use case). +The project is finished and was never used recommended for production. If you +are considering using turbonss, try nscd first. Turbonss is only 2-5 times +faster than pre-warmed nscd, which usually does not matter enough to go through +the hoops of using a nonstandard nss library in the first place. -Yours truly (the author) worked on this for about 7 months. And when this was -finished it turned out that just slapping nscd on top of the existing NSS -implementation is fast enough. +Yours truly worked on this for about 7 months. This was also my first zig +project which I never went to (nor really needed to) come back and clean up. Dependencies ------------ -1. zig v0.10. turbonss uses stage1 (the C++ version) and is not compatible with - stage2. +1. zig v0.10. turbonss is implemented in stage1, so will not work with zig + v0.11+. 2. [cmph][cmph]: bundled with this repository. Trying it out @@ -43,7 +42,7 @@ Clone, compile and test first: $ git clone --recursive https://git.sr.ht/~motiejus/turbonss $ zig build test - $ zig build -Dtarget=x86_64-linux-gnu.2.31 -Dcpu=x86_64_v3 -Drelease-safe=true + $ zig build -Dtarget=x86_64-linux-gnu.2.16 -Dcpu=baseline -Drelease-safe=true One may choose different options, depending on requirements. Here are some hints: @@ -54,8 +53,19 @@ hints: 3. `-Drelease-small=true` for smallest binary sizes. 4. `-Dstrip=true` to strip debug symbols. -Test it on a real system ------------------------- +For reference, size of the shared library and helper binaries when compiled +with `-Dstrip=true -Drelease-small=true`: + + 17K Nov 30 11:53 turbonss-analyze + 16K Nov 30 11:53 turbonss-getent + 17K Nov 30 11:53 turbonss-makecorpus + 166K Nov 30 11:53 turbonss-unix2db + 22K Nov 30 11:53 libnss_turbo.so.2.0.0 + +Many thanks to Ulrich Drepper for [teaching how to link it properly][dso]. + +Test turobnss on a real system +------------------------------ `db.turbo` is the TurboNSS database file. To create one from `/etc/group` and `/etc/passwd`, use `turbonss-unix2db`: @@ -151,9 +161,10 @@ by 10x (to 100k each), the difference becomes even crazier: Documentation ------------- -Architecture is detailed in `docs/architecture.md` -Development notes are in `docs/development.md` +- Architecture is detailed in `docs/architecture.md` +- Development notes are in `docs/development.md` [nsswitch]: https://linux.die.net/man/5/nsswitch.conf [id]: https://linux.die.net/man/1/id [cmph]: http://cmph.sourceforge.net/ +[dso]: https://akkadia.org/drepper/dsohowto.pdf