[[bench]]
harness = false
name = "env_command"
path = "benches/env_command.rs"
[[bench]]
harness = false
name = "kopi_bench"
path = "benches/kopi_bench.rs"
[[bench]]
harness = false
name = "metadata_performance"
path = "benches/metadata_performance.rs"
[[bench]]
name = "multi_progress_benchmark"
path = "benches/multi_progress_benchmark.rs"
[[bench]]
name = "path_resolution"
path = "benches/path_resolution.rs"
[[bench]]
name = "progress_indicator_bench"
path = "benches/progress_indicator_bench.rs"
[[bench]]
name = "search_performance"
path = "benches/search_performance.rs"
[[bench]]
name = "shim_bench"
path = "benches/shim_bench.rs"
[[bench]]
name = "version_parsing"
path = "benches/version_parsing.rs"
[[bench]]
name = "which_bench"
path = "benches/which_bench.rs"
[[bin]]
name = "kopi"
path = "src/main.rs"
[[bin]]
name = "kopi-metadata-gen"
path = "src/bin/kopi-metadata-gen.rs"
[[bin]]
name = "kopi-shim"
path = "src/bin/kopi-shim.rs"
[dependencies.attohttpc]
default-features = false
features = ["json", "compress", "tls-rustls-native-roots"]
version = "0.29.2"
[dependencies.chrono]
features = ["serde"]
version = "0.4"
[dependencies.clap]
features = ["color", "derive", "wrap_help"]
version = "4.5.40"
[dependencies.colored]
version = "3.0.0"
[dependencies.comfy-table]
version = "7.1"
[dependencies.config]
default-features = false
features = ["convert-case", "convert_case", "toml"]
version = "0.15.11"
[dependencies.digest]
version = "0.10"
[dependencies.dirs]
version = "6.0.0"
[dependencies.env_logger]
version = "0.11"
[dependencies.flate2]
version = "1.0"
[dependencies.hex]
version = "0.4"
[dependencies.indicatif]
version = "0.17.11"
[dependencies.log]
version = "0.4.27"
[dependencies.md5]
version = "0.7"
[dependencies.retry]
version = "2.1.0"
[dependencies.serde]
features = ["derive"]
version = "1.0.219"
[dependencies.serde_json]
version = "1.0.140"
[dependencies.sha1]
version = "0.10"
[dependencies.sha2]
version = "0.10"
[dependencies.signal-hook]
version = "0.3.18"
[dependencies.sysinfo]
version = "0.31"
[dependencies.tar]
version = "0.4.44"
[dependencies.tempfile]
version = "3.20.0"
[dependencies.thiserror]
version = "2.0.12"
[dependencies.toml]
version = "0.8"
[dependencies.uuid]
features = ["v4"]
version = "1.0"
[dependencies.walkdir]
version = "2.5.0"
[dependencies.which]
version = "8.0.0"
[dependencies.zip]
version = "4.2.0"
[dev-dependencies.assert_cmd]
version = "2.0.17"
[dev-dependencies.criterion]
version = "0.5"
[dev-dependencies.mockall]
version = "0.12"
[dev-dependencies.mockito]
version = "1.4"
[dev-dependencies.predicates]
version = "3.1.3"
[dev-dependencies.rand]
version = "0.8"
[dev-dependencies.regex]
version = "1.11"
[dev-dependencies.serial_test]
version = "3.2.0"
[features]
integration_tests = []
perf_tests = []
[lib]
name = "kopi"
path = "src/lib.rs"
[lints.clippy]
bool_assert_comparison = "deny"
needless_borrow = "deny"
uninlined_format_args = "deny"
[lints.rust]
unused_variables = "deny"
[package]
authors = ["satotaichi"]
autobenches = false
autobins = false
autoexamples = false
autolib = false
autotests = false
build = false
default-run = "kopi"
description = "Kopi is a JDK version management tool"
edition = "2024"
keywords = ["java", "jdk", "version", "management", "tool"]
license = "Apache-2.0"
name = "kopi"
readme = "README.md"
repository = "https://github.com/kopi-vm/kopi"
version = "0.2.3"
[package.metadata.nfpm]
epoch = "2"
[[package.metadata.nfpm.contents]]
dst = "/usr/bin/kopi-shim"
expand = true
mode = "755"
src = "target/${CARGO_BUILD_TARGET}/release-shim/kopi-shim"
[profile.dev.package."*"]
opt-level = 2
[profile.release]
codegen-units = 1
lto = "fat"
[profile.release-fast]
codegen-units = 16
inherits = "release"
lto = false
[profile.release-shim]
codegen-units = 1
inherits = "release"
lto = "fat"
opt-level = "z"
panic = "abort"
strip = true
[profile.test]
debug = 1
opt-level = 1
[target.'cfg(target_os = "macos")'.dependencies.libproc]
version = "0.14.11"
[target."cfg(unix)".dependencies.libc]
version = "0.2"
[target."cfg(unix)".dependencies.nix]
default-features = false
features = ["fs"]
version = "0.29"
[target."cfg(windows)".dependencies.winapi]
features = ["fileapi", "winnt", "securitybaseapi", "accctrl", "processthreadsapi", "handleapi", "winbase", "errhandlingapi"]
version = "0.3"
[[test]]
name = "api_integration"
path = "tests/api_integration.rs"
[[test]]
name = "cache_distribution_fetch"
path = "tests/cache_distribution_fetch.rs"
[[test]]
name = "cache_filtering"
path = "tests/cache_filtering.rs"
[[test]]
name = "cache_integration"
path = "tests/cache_integration.rs"
[[test]]
name = "cache_locking"
path = "tests/cache_locking.rs"
[[test]]
name = "cache_performance"
path = "tests/cache_performance.rs"
[[test]]
name = "cache_search_display"
path = "tests/cache_search_display.rs"
[[test]]
name = "cache_search_integration"
path = "tests/cache_search_integration.rs"
[[test]]
name = "cache_search_queries"
path = "tests/cache_search_queries.rs"
[[test]]
name = "cli_global_flag_test"
path = "tests/cli_global_flag_test.rs"
[[test]]
name = "current_command"
path = "tests/current_command.rs"
[[test]]
name = "doctor"
path = "tests/doctor.rs"
[[test]]
name = "doctor_installation_checks"
path = "tests/doctor_installation_checks.rs"
[[test]]
name = "doctor_jdk_checks"
path = "tests/doctor_jdk_checks.rs"
[[test]]
name = "doctor_network_cache_checks"
path = "tests/doctor_network_cache_checks.rs"
[[test]]
name = "doctor_shell_checks"
path = "tests/doctor_shell_checks.rs"
[[test]]
name = "download_integration"
path = "tests/download_integration.rs"
[[test]]
name = "env_command"
path = "tests/env_command.rs"
[[test]]
name = "example_migration"
path = "tests/example_migration.rs"
[[test]]
name = "example_test_home"
path = "tests/example_test_home.rs"
[[test]]
name = "flexible_version_matching_integration"
path = "tests/flexible_version_matching_integration.rs"
[[test]]
name = "global_command"
path = "tests/global_command.rs"
[[test]]
name = "http_metadata_integration"
path = "tests/http_metadata_integration.rs"
[[test]]
name = "indicatif_println_test"
path = "tests/indicatif_println_test.rs"
[[test]]
name = "install_command_integration"
path = "tests/install_command_integration.rs"
[[test]]
name = "install_e2e"
path = "tests/install_e2e.rs"
[[test]]
name = "install_locking"
path = "tests/install_locking.rs"
[[test]]
name = "install_scenarios"
path = "tests/install_scenarios.rs"
[[test]]
name = "jdk_bundle_e2e_simulation"
path = "tests/jdk_bundle_e2e_simulation.rs"
[[test]]
name = "jdk_bundle_structure_integration"
path = "tests/jdk_bundle_structure_integration.rs"
[[test]]
name = "jdk_distributions_integration"
path = "tests/jdk_distributions_integration.rs"
[[test]]
name = "local_command"
path = "tests/local_command.rs"
[[test]]
name = "locking_backoff_stress"
path = "tests/locking_backoff_stress.rs"
[[test]]
name = "locking_lifecycle"
path = "tests/locking_lifecycle.rs"
[[test]]
name = "locking_platform_integration"
path = "tests/locking_platform_integration.rs"
[[test]]
name = "metadata_e2e"
path = "tests/metadata_e2e.rs"
[[test]]
name = "metadata_progress_test"
path = "tests/metadata_progress_test.rs"
[[test]]
name = "migration_compatibility"
path = "tests/migration_compatibility.rs"
[[test]]
name = "multi_progress_install_test"
path = "tests/multi_progress_install_test.rs"
[[test]]
name = "multi_progress_integration"
path = "tests/multi_progress_integration.rs"
[[test]]
name = "multiprogress_ordering_test"
path = "tests/multiprogress_ordering_test.rs"
[[test]]
name = "path_layout_snapshot"
path = "tests/path_layout_snapshot.rs"
[[test]]
name = "paths_enforcement"
path = "tests/paths_enforcement.rs"
[[test]]
name = "progress_indicator_integration"
path = "tests/progress_indicator_integration.rs"
[[test]]
name = "shell_command"
path = "tests/shell_command.rs"
[[test]]
name = "shim_auto_install"
path = "tests/shim_auto_install.rs"
[[test]]
name = "shim_commands"
path = "tests/shim_commands.rs"
[[test]]
name = "shim_integration"
path = "tests/shim_integration.rs"
[[test]]
name = "shim_management"
path = "tests/shim_management.rs"
[[test]]
name = "shim_performance_test"
path = "tests/shim_performance_test.rs"
[[test]]
name = "shim_security"
path = "tests/shim_security.rs"
[[test]]
name = "storage_integration"
path = "tests/storage_integration.rs"
[[test]]
name = "test_env_command"
path = "tests/test_env_command.rs"
[[test]]
name = "test_home_integration"
path = "tests/test_home_integration.rs"
[[test]]
name = "uninstall_batch_integration"
path = "tests/uninstall_batch_integration.rs"
[[test]]
name = "uninstall_command_integration"
path = "tests/uninstall_command_integration.rs"
[[test]]
name = "uninstall_e2e"
path = "tests/uninstall_e2e.rs"
[[test]]
name = "uninstall_integration"
path = "tests/uninstall_integration.rs"
[[test]]
name = "uninstall_javafx_test"
path = "tests/uninstall_javafx_test.rs"
[[test]]
name = "uninstall_locking"
path = "tests/uninstall_locking.rs"
[[test]]
name = "uninstall_metadata_integration"
path = "tests/uninstall_metadata_integration.rs"
[[test]]
name = "uninstall_progress_integration"
path = "tests/uninstall_progress_integration.rs"
[[test]]
name = "which"
path = "tests/which.rs"
[[test]]
name = "which_platform"
path = "tests/which_platform.rs"