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:..."}
)
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"),
))
License and usage
This Software Development Kit (the “SDK”) is proprietary to LucidLink Corp. and is provided solely to enable you to develop applications and integrations that interact with LucidLink services.
Use of this SDK is governed by the LucidLink Terms and Conditions available at: https://www.lucidlink.com/terms (the “LucidLink Terms”), or, if you or your organization have entered into a separate written agreement with LucidLink governing your use of LucidLink services (for example, a subscription agreement or master services agreement), such separate written agreement.
This SDK (including any associated example or sample code) is not licensed under an open‑source license. All rights are reserved by LucidLink except as expressly granted in the Applicable Terms.
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.9-cp314-cp314-win_amd64.whl.
File metadata
- Download URL: lucidlink-0.8.9-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 |
6abbd4f23b514a40eb5db295da87420bf7262e8ef12e0e65dc7ec18ac10c5756
|
|
| MD5 |
f9483305af5760b10079e54208d0fbba
|
|
| BLAKE2b-256 |
fe933352cc3634f095e09518eb8cfa7d909ee97bf6694a2b89111f4a0d668a00
|
File details
Details for the file lucidlink-0.8.9-cp314-cp314-manylinux_2_28_x86_64.whl.
File metadata
- Download URL: lucidlink-0.8.9-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 |
3d38d6a03b4e112fe684cb230cf0b703d47df22a33c505c56ef6239715607bb2
|
|
| MD5 |
26038baa60739d5a5fccbef96c28f09e
|
|
| BLAKE2b-256 |
a0931c7e00940171bdd3ca1350cb583888fd5cabf673c5543f0df43e2e394727
|
File details
Details for the file lucidlink-0.8.9-cp314-cp314-macosx_12_0_universal2.whl.
File metadata
- Download URL: lucidlink-0.8.9-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 |
48a617b7e8a503cb61176384493c6cd5c87173e1667548e91468ea90c9a15fea
|
|
| MD5 |
1749d30671ade1772169474e1d6f021a
|
|
| BLAKE2b-256 |
7f6c498e37b9127499862ba48a08ed78b482f64482a5f0b7e0ebc1292f467410
|
File details
Details for the file lucidlink-0.8.9-cp313-cp313-win_amd64.whl.
File metadata
- Download URL: lucidlink-0.8.9-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 |
6a0b4ce3bd434bc7728591870ca3898de8253835af0b60d3da4460744d413c93
|
|
| MD5 |
cc94195bff6ed7b02722a2c36379f64e
|
|
| BLAKE2b-256 |
4c4ef78b434dbb6ca0f3e59b9cd315d3619cdc1a2a36dfe7ebf88e3179f9614d
|
File details
Details for the file lucidlink-0.8.9-cp313-cp313-manylinux_2_28_x86_64.whl.
File metadata
- Download URL: lucidlink-0.8.9-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 |
67aaabfb7df6a50c8a614bab5b0bbf00a767c307e3f324695a3220f2e842c25b
|
|
| MD5 |
0b0a40a9ebf709f7ed26ca55a34fc1b9
|
|
| BLAKE2b-256 |
1699f7be4641b318a7d2073a8a132a603d4f7d5b3ff2e6d8e5fc9a1069f1d42d
|
File details
Details for the file lucidlink-0.8.9-cp313-cp313-macosx_12_0_universal2.whl.
File metadata
- Download URL: lucidlink-0.8.9-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 |
2251b54065fc9ca0a407e94169524769b7f9d80df1a2b5181f745d3b4231e557
|
|
| MD5 |
3eac9bd20e0b9e4a6f705ddbf22da91f
|
|
| BLAKE2b-256 |
96b468f50c60fa7104a68f5db74129bad1bd38cb107b01b1066b272cd2715f9d
|
File details
Details for the file lucidlink-0.8.9-cp312-cp312-win_amd64.whl.
File metadata
- Download URL: lucidlink-0.8.9-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 |
ddbcd84a36e9467209d4810b5284a7dd96f9e9b328b55ef4421a746c3425486e
|
|
| MD5 |
dcc96ab2a3a0b6c71cfa24629f8dbdda
|
|
| BLAKE2b-256 |
e24b8caf3a6d38ff36634043bf617d54b6a58c1890f1418ee28685367a122814
|
File details
Details for the file lucidlink-0.8.9-cp312-cp312-manylinux_2_28_x86_64.whl.
File metadata
- Download URL: lucidlink-0.8.9-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 |
7df5db44dc5337de486f38b2ac872424cc17d7f76ca707ae72d79893af776f0d
|
|
| MD5 |
32f1651ea587b92f423f4b5389bee2ef
|
|
| BLAKE2b-256 |
a1f47ef27a451ef559b879f1d0facaf59ace910eb202e0713522d0815a12714b
|
File details
Details for the file lucidlink-0.8.9-cp312-cp312-macosx_12_0_universal2.whl.
File metadata
- Download URL: lucidlink-0.8.9-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 |
68580113e9129af69108b59e401073417944355c9b9a32bfbde2bbe9aba0b8bd
|
|
| MD5 |
fde87fd3148319e91a3072b9da0cf30d
|
|
| BLAKE2b-256 |
a61d5fe00e016ed2c9f0b3f9117ce8fb9d578736b8bbe4870906942e5fd13338
|
File details
Details for the file lucidlink-0.8.9-cp311-cp311-win_amd64.whl.
File metadata
- Download URL: lucidlink-0.8.9-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 |
f620aa864d0d6022a1151457b0102cc8c70d3fcb75df9fa58b746021de66d406
|
|
| MD5 |
0dc804e65e4a9d802d2d9654b19c4ac4
|
|
| BLAKE2b-256 |
278a8c8355822446e9dc7f9a4db7e52f10fa774e84c124b9a6e53b38436ed4ea
|
File details
Details for the file lucidlink-0.8.9-cp311-cp311-manylinux_2_28_x86_64.whl.
File metadata
- Download URL: lucidlink-0.8.9-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 |
3938698a225eb9c07579827891c4ef4a3481e3699145cd307ad27309a1bc68f8
|
|
| MD5 |
4d8e2aa847894e979cfd4f7946a16ada
|
|
| BLAKE2b-256 |
e8fd205556eefacb9a2cfe3d1c46248406920d6768950c92e0aa600daae2e80f
|
File details
Details for the file lucidlink-0.8.9-cp311-cp311-macosx_12_0_universal2.whl.
File metadata
- Download URL: lucidlink-0.8.9-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 |
9c8cbed5272e12b30e64edabe5c8976704ee8330c338ae03d6458393407135ae
|
|
| MD5 |
0f74267b667a94627bc407a4c3c245d3
|
|
| BLAKE2b-256 |
9bf5e40c96f140fdc759f2ba970fed8166d51308e9fefddeceaecf759e1bb7f0
|
File details
Details for the file lucidlink-0.8.9-cp310-cp310-win_amd64.whl.
File metadata
- Download URL: lucidlink-0.8.9-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 |
b956e8694371314d4ab74904375da5b9fe010ade60db48eff094f93adf1140c7
|
|
| MD5 |
579842dee7b9c55fef822c6d00ef3832
|
|
| BLAKE2b-256 |
7c3297101151776b379a6333ad28ba55434cd6556fcef14a03f93ddf532d07f7
|
File details
Details for the file lucidlink-0.8.9-cp310-cp310-manylinux_2_28_x86_64.whl.
File metadata
- Download URL: lucidlink-0.8.9-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 |
88e063b649c2f76e643b88ff35269c829aa49cc34e5fd91820bee8308e4e2224
|
|
| MD5 |
ef92d43a12de6d49677e908567bf99e7
|
|
| BLAKE2b-256 |
5a817fde5ebc7fbba7777c16ae18778a90961cc21a1ae651e92320baa0c6981d
|
File details
Details for the file lucidlink-0.8.9-cp310-cp310-macosx_12_0_universal2.whl.
File metadata
- Download URL: lucidlink-0.8.9-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 |
46690fdd6a008fc97d9481a8166f4adf70d3c26d0b5403c20a662614fa1b5fba
|
|
| MD5 |
ad69f6b2d9ffa39409de157b3e7c9f58
|
|
| BLAKE2b-256 |
8c059dfc68fc6dc586289aaf0d904e9b11ef56b7958188a3066e79e3d3adca5a
|