npm.io
0.1.1 • Published 13h ago

@kirigami/phpext-ldap

Licence
GPL-2.0-or-later
Version
0.1.1
Deps
0
Size
310 kB
Vulns
0
Weekly
0
Stars
1
Kirigami

@kirigami/phpext-ldap

ldap_*() for Kirigami PHP.wasm — as a standalone, on-demand WASM side module.
Built for the Kirigami static site generator's PHP runtime, @kirigami/php-wasm.

npm version License: GPL-2.0-or-later Node.js >=24.0.0 Website


Overview

@kirigami/phpext-ldap is PHP's own ext/ldap — unmodified upstream source, straight from the PHP-8.5.11 tag — compiled independently of the core php.wasm into a JSPI WASM side module (Kirigami's mode: shared extension model). Install it and @kirigami/php-wasm picks it up automatically at startup — no manual wiring, no core rebuild.

  • Real ext/ldap: ldap_connect, ldap_bind, ldap_search, the full documented PHP API — not a reimplementation
  • Linked against vendored, Emscripten-cross-compiled OpenLDAP client libraries 2.7.1 (libldap/liblber) — client-only, no standalone slapd server built
  • No Cyrus SASL, no TLS support yet in this build (both optional on the ext/ldap side too — plain LDAP bind/search work fully)
  • JSPI only, Node.js only — matches @kirigami/php-wasm's own target

Built by php-wasm-compiler, which also documents the full build pipeline and architecture decisions.

Part of the Kirigami project ecosystem.


Table of contents


Requirements

  • Node.js >= 24.0.0
  • @kirigami/php-wasm (peer — this package has nothing to load it into on its own)

Installation

npm install @kirigami/phpext-ldap

That's it — @kirigami/php-wasm scans its own dependencies for @kirigami/phpext-* packages at startup and loads whatever it finds.


Usage

No JS-side API of its own — once installed, the extension is just there in PHP:

<?php
$conn = ldap_connect('ldap.example.com');
ldap_bind($conn, 'cn=admin,dc=example,dc=com', 'password');
$result = ldap_search($conn, 'dc=example,dc=com', '(objectClass=*)');

Extension details

PHP extension ext/ldap, unmodified, from the PHP-8.5.11 tag
PHP version(s) shipped 8.5
Native library OpenLDAP 2.7.1 (client libraries only)
Build mode mode: shared (JSPI side module) — see @kirigami/php-wasm's mode: static core for the always-on extension set instead
Patches None — ext/ldap's own PHP-facing API needed no changes
Build options No SASL (--without-cyrus-sasl), no TLS (--without-tls) in the vendored OpenLDAP build yet

Contents

  • *.so — one JSPI side module per PHP version listed above.
  • manifest.json — extension metadata (name, per-version artifact paths, ini/env directives) consumed by @php-wasm/universal's resolvePHPExtension().
  • index.js (+ index.d.ts) — default-exports register(phpVersion), resolving this package's artifact ready to feed into @php-wasm/universal's withResolvedPHPExtensions(). This is what @kirigami/php-wasm's auto-loader calls — install the package and it's picked up automatically.
  • package.json's kirigami field — { type: "extension", phpVersions, minVersion, vendorLib: { name, version }, buildHash }, mirroring the same kirigami metadata convention every @kirigami/plugin-<name> package carries. minVersion is the exact PHP patch version this build was compiled/tested against (not a @kirigami/php-wasm semver).

Compiled by php-wasm-compiler's compile/cli.mjs compile-extension — see that repo's CLAUDE.md for the full build/versioning story.


License

GPL-2.0-or-later, the license of php-wasm-compiler's build pipeline, which comes from WordPress Playground (see its NOTICE.md). The extension's own source, php-src's ext/ldap, is under the PHP License 3.01.


Author

Maxime Larrivée-Roy, 2026

Keywords