On this page
Overview
OpenLDAP provides servers and clients for querying and updating hierarchical LDAP data such as users, groups, and devices. Schemas define attributes and object classes, while access control and replication support directory operation.
Features and best fit
Hands-on tested within the scope below · Content checked:
Key features
Best fit
Before adoption
local OpenLDAP tools / guide source 2.6.9 / macOS, slaptest and ldapadd, temporary LDIF backend
Validated core schema/configuration and dry-ran one domain LDIF; no slapd process, root write, or host configuration change.
Official sources
- [1]openldap/openldap README at OPENLDAP_REL_ENG_2_6_9(2026-10-05)
- [2]OpenLDAP official documentation(2026-10-05)
- [3]OpenLDAP OPENLDAP_REL_ENG_2_6_9 source(2026-10-05)
- [4]openldap/openldap COPYRIGHT at OPENLDAP_REL_ENG_2_6_9(2026-10-05)
- [5]openldap/openldap GitHub metadata(2026-10-05)
Supplemental curator note
It is useful for validating LDAP schema and LDIF before starting a service. Dry-run a temporary LDIF backend and domain entry first, then design authentication, encryption, and replication in an isolated environment.
Try it in 3 steps
- 1
Configure a temporary LDIF backend
Requires OpenLDAP slaptest and ldapadd, plus core.schema actually installed at /etc/openldap/schema/core.schema. If installed elsewhere, replace the include path in the command with its real location; the LDIF directory remains in the temporary area.
demo=$(mktemp -d "${TMPDIR:-/tmp}/openldap-offline.XXXXXX") && cd "$demo" && mkdir data && printf '%s\n' 'include /etc/openldap/schema/core.schema' 'pidfile ./slapd.pid' 'argsfile ./slapd.args' 'database ldif' 'directory DIRECTORY_PLACEHOLDER' 'suffix "dc=example,dc=test"' 'rootdn "cn=admin,dc=example,dc=test"' > slapd.conf && sed -i.bak "s|DIRECTORY_PLACEHOLDER|$PWD/data|" slapd.conf - 2
Write a domain entry
Create a minimal domain LDIF entry for dc=example,dc=test.
printf '%s\n' 'dn: dc=example,dc=test' 'objectClass: top' 'objectClass: domain' 'dc: example' > base.ldif - 3
Dry-run configuration and LDIF
Use slaptest -u for schema/configuration and ldapadd -n for a no-send LDIF check. slapd is never started.
slaptest -u -f "$PWD/slapd.conf" && ldapadd -n -f base.ldif | grep 'dc=example,dc=test'
Growth
Growth trends · Last 30 days
604 Stars
Trend data is still being collected.
Development activity
Last 90 days · weekly
- Commits (last 30 days)
- 40
- Open PRs
- 0
Development activity is still being collected.
Built with
Categories and tags
Categories
GitHub data
GitHub dataView detailed GitHub data
- Stars
- 604
- Forks
- 207
- Watchers
- 29
- Open issues
- 0
- Contributors
- 140
- Owner type
- Organization
- Primary language
- C
- License
- Not determined
- Repository last updated
- Oct 2, 2026
Related information
Write a related articleShare a guide or use case for this OSS in Markdown. Articles are published after administrator approval.
Explore next
- OBS Studio76,987 Stars
1 shared tag(s) · Same language
Compose camera, screen, game, and media sources into scenes and drive recordings or live streams through real-time encoders
C - Redis76,590 Stars
1 shared tag(s) · Same language
Run caching, search, vectors, and Streams on one low-latency data platform
C - FFmpeg64,755 Stars
1 shared tag(s) · Same language
Combine codecs, containers, filters, and protocols through CLIs and libraries to transform and inspect media
C - Git63,644 Stars
1 shared tag(s) · Same language
keep complete history locally and synchronize repositories as distributed peers
C - tmux49,749 Stars
1 shared tag(s) · Same language
manage persistent terminal sessions, windows, and panes
C - curl43,060 Stars
1 shared tag(s) · Same language
share URL-based transfer capabilities between a CLI and libcurl
C
Report incorrect information
Tell us if any listing information is incorrect or outdated.