Python SDK for LucidLink — programmatic access to LucidLink filespaces
Project description
lucidlink
The LucidLink Python SDK lets you programmatically access LucidLink filespaces: reading and writing files, streaming data, integrating with data libraries like Pandas and Dask, and managing external cloud storage via LucidLink Connect (Enterprise add-on).
Key Concepts
- Workspace — your organization's LucidLink account.
- Filespace — a named storage volume within a workspace. Most SDK operations are scoped to a filespace.
- Daemon — the SDK's main entry point. Initializes the LucidLink client and manages its lifecycle.
- Service Account — a non-human identity used to authenticate SDK calls. Tokens look like
sa_live:your_key. - LucidLink Connect — a feature (Enterprise add-on) that surfaces files from external S3 storage inside a filespace without copying them.
Authentication
All SDK operations require a service account token. Create one in the LucidLink web client (requires admin permissions). Service accounts are available on Business and Enterprise plans, as well as during Trial.
credentials = lucidlink.ServiceAccountCredentials(
token="sa_live:your_key"
)
Features
- Service Account Authentication — authenticate using service account tokens
- File Operations — read, write, create, delete files and directories
- Streaming I/O — full
io.RawIOBaseinterface for standard Python I/O compatibility - fsspec Integration — compatible with Pandas, Dask, PyArrow, and other data libraries
- LucidLink Connect — manage external S3 data stores and link files into filespaces (Enterprise)
Installation
Requires Python 3.10 or later.
pip install lucidlink
For fsspec integration:
pip install "lucidlink[fsspec]"
Quick Start
import lucidlink
# Create and start daemon
with lucidlink.Daemon() as daemon:
# Authenticate with service account
credentials = lucidlink.ServiceAccountCredentials(
token="sa_live:your_key"
)
workspace = daemon.authenticate(credentials)
# Link to a filespace
filespace = workspace.link_filespace(name="production-data")
# List directory
for entry in filespace.fs.read_dir("/"):
print(f"{entry.name}: {entry.size} bytes")
# Write a file
filespace.fs.write_file("/example.txt", b"Hello from LucidLink!")
# Read a file
data = filespace.fs.read_file("/example.txt")
print(data)
# Cleanup
workspace.unlink_filespace()
Streaming File Access
Full io.RawIOBase compatibility for streaming:
# Binary streaming
with filespace.open("/large_file.dat", "rb", buffering=8192) as f:
for chunk in iter(lambda: f.read(4096), b""):
process(chunk)
# Text streaming with encoding
with filespace.open("/document.txt", "rt", encoding="utf-8") as f:
for line in f:
print(line.strip())
# Byte range reads
with filespace.open("/data.bin", "rb") as f:
f.seek(1000)
data = f.read(100) # Read 100 bytes from offset 1000
fsspec Integration
Access LucidLink files using standard data libraries (requires pip install "lucidlink[fsspec]"):
import pandas as pd
# Read CSV directly from LucidLink
df = pd.read_csv(
"lucidlink://workspace/filespace/data.csv",
storage_options={"token": "sa_live:..."}
)
# Write Parquet to LucidLink
df.to_parquet(
"lucidlink://workspace/filespace/output.parquet",
storage_options={"token": "sa_live:..."}
)
With Dask for distributed computing:
import dask.dataframe as dd
ddf = dd.read_parquet(
"lucidlink://workspace/filespace/dataset/*.parquet",
storage_options={"token": "sa_live:..."}
)
result = ddf.groupby("category").agg({"value": "sum"}).compute()
Direct fsspec usage:
from lucidlink.fsspec import LucidLinkFileSystem
fs = LucidLinkFileSystem(token="sa_live:...", sandboxed=True)
# List, download, upload
entries = fs.ls("lucidlink://workspace/filespace/", detail=True)
fs.get("lucidlink://workspace/filespace/file.txt", "local_file.txt")
fs.put("local_file.txt", "lucidlink://workspace/filespace/uploaded.txt")
# Move/rename (native operation, faster than copy+delete)
fs.mv("lucidlink://workspace/filespace/old.txt",
"lucidlink://workspace/filespace/new.txt")
fs.close()
Storage Modes
Sandboxed Mode (Default)
Uses a temporary directory that is automatically cleaned up:
daemon = lucidlink.Daemon() # sandboxed by default
Physical Mode
Uses a persistent .lucid folder:
from lucidlink import Daemon, StorageConfig, StorageMode
# With cleanup on exit
daemon = Daemon(storage=StorageConfig(mode=StorageMode.PHYSICAL))
# Keep files after exit
daemon = Daemon(storage=StorageConfig(
mode=StorageMode.PHYSICAL,
persist_on_exit=True,
))
# Custom storage location
daemon = Daemon(storage=StorageConfig(
mode=StorageMode.PHYSICAL,
persist_on_exit=True,
root_path=Path("D:/lucid_data"),
))
API Reference
Core Classes
| Class | Description |
|---|---|
Daemon |
Daemon lifecycle management |
Workspace |
Workspace operations and filespace discovery |
Filespace |
Filespace context — provides access to filesystem and connect interfaces |
Filesystem |
File and directory operations |
LucidFileStream |
Streaming file I/O (io.RawIOBase) |
LucidLinkFileSystem |
fsspec integration (fsspec.AbstractFileSystem) |
ServiceAccountCredentials |
Authentication credentials |
StorageConfig / StorageMode |
Storage configuration |
ConnectManager |
External files (S3 data store) management |
Exception Hierarchy
File operations raise standard Python exceptions (FileNotFoundError, FileExistsError, PermissionError, IsADirectoryError, etc.). SDK-specific errors use the following hierarchy:
LucidLinkError
├── DaemonError # Daemon lifecycle errors
├── FilespaceError # Filespace operation errors
├── AuthenticationError # Authentication failures
└── ConfigurationError # Configuration errors
License
Copyright 2026 LucidLink Corp. All rights reserved.
By using this software, you agree to the LucidLink Beta Agreement.
Support
- Support: support@lucidlink.com
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file lucidlink-0.8.5-cp314-cp314-win_amd64.whl.
File metadata
- Download URL: lucidlink-0.8.5-cp314-cp314-win_amd64.whl
- Upload date:
- Size: 28.6 MB
- Tags: CPython 3.14, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
db807e38a46cf169d1c01172e901b2498e4df994cbf5ac2b831c3a33d62e30dd
|
|
| MD5 |
506ead3fa669703c62167457ad210f6b
|
|
| BLAKE2b-256 |
1bf77403bf5a83e9980d22b7747b39458b504577d49f823e3eb9e41c6eff288d
|
File details
Details for the file lucidlink-0.8.5-cp314-cp314-manylinux_2_28_x86_64.whl.
File metadata
- Download URL: lucidlink-0.8.5-cp314-cp314-manylinux_2_28_x86_64.whl
- Upload date:
- Size: 14.4 MB
- Tags: CPython 3.14, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bb4e75deda3f79a855c440da4bd932193559b2f232b0e38253a56d68dc960256
|
|
| MD5 |
9d683e30189869665e7fc5e797221e97
|
|
| BLAKE2b-256 |
a47b5b6d5b611eb82e8d86f0167225ef575dd2940d9cae44182a1aad69c5c9e8
|
File details
Details for the file lucidlink-0.8.5-cp314-cp314-macosx_12_0_universal2.whl.
File metadata
- Download URL: lucidlink-0.8.5-cp314-cp314-macosx_12_0_universal2.whl
- Upload date:
- Size: 17.3 MB
- Tags: CPython 3.14, macOS 12.0+ universal2 (ARM64, x86-64)
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b3a14ea06ac55ddfdab630ccb78ac8dc6830f4b5d63fde54e8e2e8854b47495a
|
|
| MD5 |
1468a35aee8ad9b62fb3fba7a39adaeb
|
|
| BLAKE2b-256 |
810e7a74e5fe4556b204ad92598f26f32268a934e17bd87a4eddf8a724b751fa
|
File details
Details for the file lucidlink-0.8.5-cp313-cp313-win_amd64.whl.
File metadata
- Download URL: lucidlink-0.8.5-cp313-cp313-win_amd64.whl
- Upload date:
- Size: 27.3 MB
- Tags: CPython 3.13, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c45fc73c2d00cd0eadb250635197ffaddbf028254d6a03b6ae3040934acd79ed
|
|
| MD5 |
e2a2b060f3ceeae3ad1af60b35fa3e0f
|
|
| BLAKE2b-256 |
7100725b6516afacc65da07da15f4c00b25acb6a6dc2dd8f8caa7ebb8d69574a
|
File details
Details for the file lucidlink-0.8.5-cp313-cp313-manylinux_2_28_x86_64.whl.
File metadata
- Download URL: lucidlink-0.8.5-cp313-cp313-manylinux_2_28_x86_64.whl
- Upload date:
- Size: 14.4 MB
- Tags: CPython 3.13, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ab6ad4884929c9c609ffac4be6d8086949228a4bd98c50cca8f2df5309eb6b19
|
|
| MD5 |
09c879fe8b6776c633cbd8d3f04605d2
|
|
| BLAKE2b-256 |
1eb866097f8f05c028888287db6e42e278befedd3d54345f66c7782c9e29d653
|
File details
Details for the file lucidlink-0.8.5-cp313-cp313-macosx_12_0_universal2.whl.
File metadata
- Download URL: lucidlink-0.8.5-cp313-cp313-macosx_12_0_universal2.whl
- Upload date:
- Size: 17.3 MB
- Tags: CPython 3.13, macOS 12.0+ universal2 (ARM64, x86-64)
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c9227dd4a284b8abc2d7ef559797fc53c0c8eb4dd3276e941df9ddf6732f4285
|
|
| MD5 |
5adcd1f675568fc97a92d19810c1fc36
|
|
| BLAKE2b-256 |
8f69ec2fefc9c09e2ebc910ed1516b85fd4e4614213c19a8fe1cb093674d506a
|
File details
Details for the file lucidlink-0.8.5-cp312-cp312-win_amd64.whl.
File metadata
- Download URL: lucidlink-0.8.5-cp312-cp312-win_amd64.whl
- Upload date:
- Size: 27.3 MB
- Tags: CPython 3.12, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fe830f290ca1d3049eb1981fa149db3d3e3bf69393f0eff84a89039825f3cb50
|
|
| MD5 |
dd7b5ea3f5cad30c6998345567709b35
|
|
| BLAKE2b-256 |
fbe9ff6bf86542caf67e480f53891d91b0a10792e73125d1ad9fe17ca71390c7
|
File details
Details for the file lucidlink-0.8.5-cp312-cp312-manylinux_2_28_x86_64.whl.
File metadata
- Download URL: lucidlink-0.8.5-cp312-cp312-manylinux_2_28_x86_64.whl
- Upload date:
- Size: 14.4 MB
- Tags: CPython 3.12, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
65d02dd14ed4944b3b2dff8e285250b134080f38f1e44ad7ef60b90c73e1d416
|
|
| MD5 |
f3e5141e991eb53688384cfd6dfc4156
|
|
| BLAKE2b-256 |
7b0cf0820a9ce630d50737dcca375ccd3b632aeff7113ca7adb63801ce41d9a0
|
File details
Details for the file lucidlink-0.8.5-cp312-cp312-macosx_12_0_universal2.whl.
File metadata
- Download URL: lucidlink-0.8.5-cp312-cp312-macosx_12_0_universal2.whl
- Upload date:
- Size: 17.3 MB
- Tags: CPython 3.12, macOS 12.0+ universal2 (ARM64, x86-64)
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
943832bb3d6c201d2968c6ab2485ed14221a964613f8e0164f1a88d2b92b1b26
|
|
| MD5 |
df18664e6e02fc9b6a8dbabc093236b7
|
|
| BLAKE2b-256 |
c463af224e64b8e9b3dda82ab51992adef2adfa41e1f3b59c03c4e814c890cbb
|
File details
Details for the file lucidlink-0.8.5-cp311-cp311-win_amd64.whl.
File metadata
- Download URL: lucidlink-0.8.5-cp311-cp311-win_amd64.whl
- Upload date:
- Size: 27.3 MB
- Tags: CPython 3.11, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6f8c77a4ffe95266a635d9fdf1609afd8223d281f9b87335e044342e35554c09
|
|
| MD5 |
2b91185307be3a53d2891ebbdcf11c5c
|
|
| BLAKE2b-256 |
d4d8fe790f278003d443dbf0ccaa1952dfbdd11051d30a206e5da111398ae7e2
|
File details
Details for the file lucidlink-0.8.5-cp311-cp311-manylinux_2_28_x86_64.whl.
File metadata
- Download URL: lucidlink-0.8.5-cp311-cp311-manylinux_2_28_x86_64.whl
- Upload date:
- Size: 14.4 MB
- Tags: CPython 3.11, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7bbc7e91923b223485d459228b79f20df4770476ce6dcc538a845b1ee5d69244
|
|
| MD5 |
d06258cd27a0c61f78c8635fdcca81ad
|
|
| BLAKE2b-256 |
b0824c93472369f4e8ae61ba4674e9daae023755be432bb1ff85e4a9c68af9c3
|
File details
Details for the file lucidlink-0.8.5-cp311-cp311-macosx_12_0_universal2.whl.
File metadata
- Download URL: lucidlink-0.8.5-cp311-cp311-macosx_12_0_universal2.whl
- Upload date:
- Size: 17.3 MB
- Tags: CPython 3.11, macOS 12.0+ universal2 (ARM64, x86-64)
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
35093dd23d36dfe98e383b0af413f5fcf44112f17a69e251754db1973126c6b8
|
|
| MD5 |
cb24df5fdb6f5d8fdc67328481bf335a
|
|
| BLAKE2b-256 |
11e51325dd454f5ea857a8637353cf6c94645e2ad190e22003c1e7505780c228
|
File details
Details for the file lucidlink-0.8.5-cp310-cp310-win_amd64.whl.
File metadata
- Download URL: lucidlink-0.8.5-cp310-cp310-win_amd64.whl
- Upload date:
- Size: 27.3 MB
- Tags: CPython 3.10, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
98ca1d635e9b4d937b02cd4afdae51ecfec99a78e90d46014db7c1aa6c10307a
|
|
| MD5 |
1ab8ff8b5e645b1a137be152c1b34c62
|
|
| BLAKE2b-256 |
e84da07e3d29c7936c49dac7d3320de4f9abd5a378f7c45e249a5ca5b1695a4c
|
File details
Details for the file lucidlink-0.8.5-cp310-cp310-manylinux_2_28_x86_64.whl.
File metadata
- Download URL: lucidlink-0.8.5-cp310-cp310-manylinux_2_28_x86_64.whl
- Upload date:
- Size: 14.4 MB
- Tags: CPython 3.10, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3fd5b7ce13522416f6bd86434cf7e9ef235f493d5ae7ce2a2e60149d03d2b44c
|
|
| MD5 |
28578987c815345adc5b52a733c9e25c
|
|
| BLAKE2b-256 |
b69a7e93877997a94847faf235e9b630841e87d5a9c6f3f24c9f6fa8b111d7c1
|
File details
Details for the file lucidlink-0.8.5-cp310-cp310-macosx_12_0_universal2.whl.
File metadata
- Download URL: lucidlink-0.8.5-cp310-cp310-macosx_12_0_universal2.whl
- Upload date:
- Size: 17.3 MB
- Tags: CPython 3.10, macOS 12.0+ universal2 (ARM64, x86-64)
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0b42aa67d38c54c434b576b202ca2c62691fc9b490578ddcbd773e27128850b3
|
|
| MD5 |
4d46fdb1b03587249e74eea97808f50b
|
|
| BLAKE2b-256 |
e3f49e1c3231e8ef4308f34c504eba6e5dd5510b95cb9dac76a2b9086c3ba135
|