Skip to main content

Libloader

Libloader is a cross-platform Python library that simplifies loading shared libraries on macOS, Windows, and Linux. It handles platform-specific differences automatically, making your code more portable.

It also provides a COM module (libloader.com), making it easier to load COM DLLs on Windows.

Installation

pip install libloader

Usage

Loading Shared Libraries

from libloader import load_library

# Load a library with default paths
my_lib = load_library("mylibrary")

# Load a library with custom paths for 32-bit and 64-bit versions
my_lib = load_library("mylibrary", x86_path="./lib/x86", x64_path="./lib/x64")

# Load a library with ARM64 support (M1+ Macs, ARM servers)
my_lib = load_library("mylibrary", x64_path="./lib/x64", arm64_path="./lib/arm64")

# Call a function from the library
result = my_lib.some_function(arg1, arg2)

Working with COM Objects (Windows)

from libloader.com import load_com

# Load a COM object
excel = load_com("Excel.Application")

# Try multiple COM objects until one succeeds
speech = load_com("SAPI.SpVoice", "SpeechLib.SpVoice")

API Reference

libloader

  • load_library(library, x86_path=".", x64_path=".", arm64_path=None, *args, **kwargs): Load a library with the given name. If arm64_path is not specified on ARM64 systems, falls back to x64_path.
  • find_library_path(libname, x86_path=".", x64_path=".", arm64_path=None): Finds the path of the given library.
  • get_functype(): Returns the ctypes functype for the current platform.
  • get_library_extension(): Get the extension of the library for your current platform.
  • _do_load(file, *args, **kwargs): Attempts to actually load the library. Used internally by load_library.

libloader.com

  • load_com(*names): Load a COM object. If you pass multiple names, it will try each one until one works.
  • prepare_gencache(): Prepare the gencache for COM. Called automatically by load_com().

Platform Support

Libloader automatically handles the differences between platforms:

  • Windows: .dll files
  • macOS: .dylib files
  • Linux: .so files

Architecture Support

Libloader automatically detects the system architecture and loads the appropriate library:

  • x86 (32-bit): Uses x86_path
  • x86_64/AMD64 (64-bit Intel/AMD): Uses x64_path
  • ARM64/aarch64 (M1+ Macs, ARM servers): Uses arm64_path if specified, otherwise falls back to x64_path

This means existing code works on Apple Silicon Macs without modification, while allowing you to provide architecture-specific binaries when needed.

License

See the LICENSE file for details.

Metadata

Release files for libloader 1.4.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for libloader 1.4.3
File Size Uploaded
libloader-1.4.3.tar.gz 6.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for libloader 1.4.3
File Interpreter ABI Platform
libloader-1.4.3-py3-none-any.whl Python 3 none any Details

Total release size: 12.4 kB

Release files / libloader-1.4.3.tar.gz

Download URL libloader-1.4.3.tar.gz
Size 6.2 kB
Tags Source
SHA-256 checksum
How to use checksums
9c56b1ee2e866e314c35d1095d1e3b99c1c762e89a27bf26c98bd65d58f4e182
BLAKE2b-256 checksum
How to use checksums
d4dd58864bd93f74cd227996cec701713e27f6a57b1c189747cfefc9c9c2e00e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jan 14, 2026.

Transparency log

Release files / libloader-1.4.3-py3-none-any.whl

Download URL libloader-1.4.3-py3-none-any.whl
Size 6.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
4cfd541496bed79a2b5f72c316e16312ce1dd72fab6ed837801aa5e53299d6da
BLAKE2b-256 checksum
How to use checksums
97cbdac60d530791146d52e2dab3a16531963d03899ea37eec77cc03ea8c281d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jan 14, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

1.4.3 This release

2 release files

1.4.2

2 release files

1.4.1

2 release files

1.4.0

2 release files

1.3.3

2 release files

1.3.1

2 release files

0.21

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page