blob: 0db67810589b610d62f9ff06c5fcdbaf80358d46 [file] [log] [blame]
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
[package]
name = "opendal-python"
publish = false
authors = ["Apache OpenDAL <dev@opendal.apache.org>"]
edition = "2024"
homepage = "https://opendal.apache.org/"
license = "Apache-2.0"
repository = "https://github.com/apache/opendal"
rust-version = "1.85"
version = "0.47.0"
[features]
default = [
"services-azblob",
"services-azdls",
"services-cos",
"services-fs",
"services-gcs",
"services-ghac",
"services-http",
"services-ipmfs",
"services-memory",
"services-obs",
"services-oss",
"services-s3",
"services-webdav",
"services-webhdfs",
]
# NOTE: this is the feature we used to build pypi wheels.
# When enable or disable some features,
# Also, you need to update the `enabled_service` function in dev/src/generate/python.rs to match it.
services-all = [
'default',
'services-aliyun-drive',
'services-alluxio',
'services-azfile',
'services-b2',
'services-cacache',
'services-dashmap',
'services-dropbox',
'services-ftp',
'services-gdrive',
'services-gridfs',
'services-huggingface',
'services-ipfs',
'services-koofr',
'services-memcached',
'services-mini-moka',
'services-moka',
'services-mongodb',
'services-mysql',
'services-onedrive',
'services-persy',
'services-postgresql',
'services-redb',
'services-redis',
'services-seafile',
'services-sled',
'services-sqlite',
'services-swift',
'services-upyun',
'services-vercel-artifacts',
'services-yandex-disk',
]
# List of feature-flags for all services provided by opendal.
services-aliyun-drive = ["opendal/services-aliyun-drive"]
services-alluxio = ["opendal/services-alluxio"]
services-azblob = ["opendal/services-azblob"]
services-azdls = ["opendal/services-azdls"]
services-azfile = ["opendal/services-azfile"]
services-b2 = ["opendal/services-b2"]
services-cacache = ["opendal/services-cacache"]
services-cloudflare-kv = [
"opendal/services-cloudflare-kv",
] # FIXME EXCLUDED: Needs tests/ maintenance
services-compfs = [
"opendal/services-compfs",
] # FIXME EXCLUDED: Needs tests/ maintenance
services-cos = ["opendal/services-cos"]
services-d1 = ["opendal/services-d1"] # FIXME EXCLUDED: Needs tests/ maintenance
services-dashmap = ["opendal/services-dashmap"]
services-dbfs = [
"opendal/services-dbfs",
] # FIXME EXCLUDED: Needs tests/ maintenance
services-dropbox = ["opendal/services-dropbox"]
services-etcd = [
"opendal/services-etcd",
] # FIXME EXCLUDED: this service needs protoc
services-foundationdb = [
"opendal/services-foundationdb",
] # FIXME EXCLUDED: this service needs preinstalled fdb library
services-fs = ["opendal/services-fs"]
services-ftp = ["opendal/services-ftp"]
services-gcs = ["opendal/services-gcs"]
services-gdrive = ["opendal/services-gdrive"]
services-ghac = ["opendal/services-ghac"]
services-github = [
"opendal/services-github",
] # FIXME EXCLUDED: Needs tests/ maintenance
services-gridfs = ["opendal/services-gridfs"]
services-hdfs = [
"opendal/services-hdfs",
] # FIXME EXCLUDED: how to support HDFS services in bindings?
services-hdfs-native = ["opendal/services-hdfs-native"]
services-http = ["opendal/services-http"]
services-huggingface = ["opendal/services-huggingface"]
services-ipfs = ["opendal/services-ipfs"]
services-ipmfs = ["opendal/services-ipmfs"]
services-koofr = ["opendal/services-koofr"]
services-lakefs = [
"opendal/services-lakefs",
] # FIXME EXCLUDED: Needs tests/ maintenance
services-memcached = ["opendal/services-memcached"]
services-memory = ["opendal/services-memory"]
services-mini-moka = ["opendal/services-mini-moka"]
services-moka = ["opendal/services-moka"]
services-mongodb = ["opendal/services-mongodb"]
services-monoiofs = [
"opendal/services-monoiofs",
] # FIXME EXCLUDED: Needs tests/ maintenance
services-mysql = ["opendal/services-mysql"]
services-obs = ["opendal/services-obs"]
services-onedrive = ["opendal/services-onedrive"]
services-opfs = [
"opendal/services-opfs",
] # FIXME EXCLUDED: Needs tests/ maintenance
services-oss = ["opendal/services-oss"]
services-pcloud = [
"opendal/services-pcloud",
] # FIXME EXCLUDED: Needs tests/ maintenance
services-persy = ["opendal/services-persy"]
services-postgresql = ["opendal/services-postgresql"]
services-redb = ["opendal/services-redb"]
services-redis = ["opendal/services-redis"]
services-rocksdb = [
"opendal/services-rocksdb",
] # FIXME EXCLUDED: how to support rocksdb services in bindings?
services-s3 = ["opendal/services-s3"]
services-seafile = ["opendal/services-seafile"]
services-sftp = ["opendal/services-sftp"]
services-sled = ["opendal/services-sled"]
services-sqlite = ["opendal/services-sqlite"]
services-surrealdb = [
"opendal/services-surrealdb",
] # FIXME EXCLUDED: Needs tests/ maintenance
services-swift = ["opendal/services-swift"]
services-tikv = [
"opendal/services-tikv",
] # FIXME EXCLUDED: this service needs protoc
services-upyun = ["opendal/services-upyun"]
services-vercel-artifacts = ["opendal/services-vercel-artifacts"]
services-vercel-blob = [
"opendal/services-vercel-blob",
] # FIXME EXCLUDED: Needs tests/ maintenance
services-webdav = ["opendal/services-webdav"]
services-webhdfs = ["opendal/services-webhdfs"]
services-yandex-disk = ["opendal/services-yandex-disk"]
# we build cp311-abi3 and cp310 wheels now, move this to pyo3 after we drop cp310
abi3 = ["pyo3/abi3-py311"]
# Conditionally include sftp only on non-windows targets
[target.'cfg(not(windows))'.features]
services-all = ["services-sftp"]
# Conditionally include sftp only on non-windows targets
[target.'cfg(not(target_arch = "arm"))'.features]
services-all = ["services-hdfs-native"]
[[bin]]
doc = false
name = "stub_gen"
[lib]
crate-type = ["cdylib", "rlib"]
doc = false
name = "_opendal"
[dependencies]
bytes = "1.5.0"
dict_derive = "0.6.0"
futures = "0.3.28"
jiff = { version = "0.2.15" }
mea = "0.5.1"
# this crate won't be published, we always use the local version
opendal = { version = ">=0", path = "../../core", features = [
"blocking",
"layers-mime-guess",
] }
pyo3 = { version = "0.26.0", features = ["generate-import-lib", "jiff-02"] }
pyo3-async-runtimes = { version = "0.26.0", features = ["tokio-runtime"] }
pyo3-stub-gen = { version = "0.17" }
tokio = "1"
[profile.release]
codegen-units = 1
debug = false
lto = "fat"
strip = true