go-ldap

go-ldap/ldap

Go No license Security License not recognized by GitHub

Basic LDAP v3 functionality for the GO programming language.

2.4k stars
382 forks
active
GitHub +2 / week

2.4k

Stars

382

Forks

71

Open issues

30

Contributors

v3.4.13 17 Mar 2026

AI Analysis

go-ldap/ldap is a comprehensive LDAP v3 client library for Go, implementing core RFC specifications for directory operations including bind, search, modify, and password management. It serves developers building Go applications that need to authenticate against or interact with LDAP/Active Directory servers, making it essential infrastructure for enterprise system integrations, IAM tools, and authentication middleware.

Security Library Discovery value: 4/10
Documentation 8/10
Activity 9/10
Community 8/10
Code quality 7/10

Inferred from signals mentioned in the README (tests, CI, type safety) — not a review of the actual code.

Overall score 8/10

AI's overall editorial judgment — not an average of the bars above, can weigh other factors too.

ldap-client authentication directory-services go-library enterprise-integration
Actively maintained Well documented Niche/specialized use case Popular Production ready
Deep Analysis · Based on README and public signals
1w ago

Mature Go LDAP client library with steady maintenance, narrow but established niche adoption

go-ldap/ldap is a Go implementation of LDAP v3 client functionality (RFC 4511 and related standards). It provides bind operations, search, modify, add, delete, and extended operations with support for TLS, SASL, and paging. Used primarily by Go developers needing directory service integration—authentication systems, identity management tooling, and enterprise integrations. Not a consumer-facing tool; adoption is specialized but appears durable among its target audience.

Origin

Created in October 2014 during early Go adoption. Has remained a foundational library in the Go ecosystem for LDAP operations, with no apparent replacement competing directly at the same level of completeness. Represents the de facto standard LDAP client for Go, though adoption remains narrow compared to broader Go libraries.

Growth

Star growth is minimal (1 star in last 7 days, 2,443 total). This is consistent with a mature, stable library serving a specialized domain rather than a growing consumer trend. The plateau reflects market saturation in the LDAP-client-for-Go niche—not failure, but stable equilibrium. Repository remains actively maintained as of late June 2026, suggesting ongoing use rather than abandonment.

In production

Adoption not verified in README or metadata. No documented case studies, known high-profile users, or deployment statistics provided. However, the library's age (12 years), maintained status, and RFC compliance suggest it likely powers identity systems at organizations integrating Go with enterprise LDAP directories. Absence of public case studies does not indicate absence of production use—LDAP integrations often occur in internal enterprise systems with low visibility.

Code analysis
Architecture

Library appears modular, likely organized around LDAP message types (bind, search, modify, etc.) with separate handlers for TLS, SASL, and paging. README documents support for RFC 4511, 3062, 4514, 4533, 2891, 4532 and draft specifications. Appears to implement a client-side LDAP protocol stack without server components.

Tests

Not documented in README. However, contributing guidelines reference `make` targets for `go test`, suggesting automated testing is part of the development workflow. Full coverage metrics not disclosed.

Maintenance

Last push 2026-06-21 (12 days before evaluation date). This is recent activity. Contributing guidelines explicitly invite bug reports and pull requests and document a test/verification workflow with Docker/Podman for local LDAP server testing. Suggests active maintenance posture, though frequency of releases/merges not specified in README.

Honest verdict

ADOPT IF: your Go service needs to query LDAP directories, perform authentication against AD/LDAP, or manage directory objects programmatically, and you require standards-compliant LDAP v3 operations (bind, search, modify, extended ops, SASL). AVOID IF: you need a managed/abstracted identity provider (prefer OAuth2, OIDC, or managed services) or you're building an LDAP server rather than a client. MONITOR IF: you depend on obscure LDAP extensions—verify the library's RFC support matches your requirements, and track maintenance activity for security patches.

Independent dimensions

Mainstream potential

2/10

Technical importance

6/10

Adoption evidence

4/10

Risks
  • Limited public documentation of production deployments—hard to assess real-world reliability at scale without case studies or community reporting.
  • LDAP is a legacy protocol; organizational migration to modern identity systems (Okta, Entra ID, OIDC) may reduce long-term demand for LDAP client libraries.
  • No evidence of major version API stability guarantees in README; v3 import pattern suggests v1/v2 exist—migration path for users unclear.
  • Security vulnerabilities in LDAP protocol handling could impact all consuming applications; maintenance cadence (push frequency) not explicitly stated—timing of security response unknown.
  • Narrow adoption niche means fewer community contributions and slower feature additions compared to larger Go libraries; may lag in edge-case protocol scenarios.
Prediction

go-ldap/ldap will remain the de facto Go LDAP client library, slowly declining in relative importance as organizations migrate away from LDAP toward cloud-native identity systems, but remaining essential for legacy/hybrid environments. Maintenance will likely continue at current low-activity pace as long as enterprise LDAP integration remains necessary.

0 found this helpful

Newsletter

Get analyses like this every Monday

Free weekly digest of the most interesting open-source discoveries.

Languages

Go
99.3%
Makefile
0.7%

Information

Language
Go
License
NOASSERTION
Last updated
4d ago
Created
143mo ago
Analyzed with
anthropic/claude-haiku-4-5

Stars over time

Loading…

Contributors over time

Top 100 contributors only — repos with more will plateau at 100.

Loading…

Similar repos

glauth

glauth/glauth

GLAuth is a lightweight LDAP server written in Go, designed for developers,...

2.8k Go DevOps
golang

golang/oauth2

The golang/oauth2 package provides a client implementation of the OAuth 2.0...

5.9k Go Security
google

google/go-github

go-github is a mature Go client library for accessing the GitHub REST API v3,...

11.3k Go Dev Tools
zitadel

zitadel/oidc

A certified OpenID Connect client and server library for Go that implements the...

1.9k Go Security
golang

golang/go

The Go programming language is an open source, statically typed, compiled...

135.3k Go Dev Tools
vs. alternatives
glauth/glauth (2,823 stars)

glauth is a Go LDAP server and authentication gateway, not a client library. Complements rather than replaces go-ldap/ldap; glauth likely depends on client libraries internally. Different problem domain.

golang/oauth2 (5,877 stars)

OAuth2 is a different authentication protocol/standard. Solves modern API authentication rather than directory service queries. Not a direct competitor; projects often use both in combination.

google/go-github (11,264 stars)

API client library for a specific service. Higher star count reflects broader use case (GitHub integration) vs. specialized directory protocol. Similar architectural pattern but different domain.

OpenLDAP (implicit reference point)

go-ldap/ldap is a client library implementing LDAP protocol; OpenLDAP is the C reference implementation and server. Not competitors—go-ldap connects to LDAP servers like those built on OpenLDAP.