Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Liberate the solana-client family from solana-sdk #3027

Open
kevinheavey opened this issue Sep 29, 2024 · 0 comments
Open

Liberate the solana-client family from solana-sdk #3027

kevinheavey opened this issue Sep 29, 2024 · 0 comments

Comments

@kevinheavey
Copy link

kevinheavey commented Sep 29, 2024

Problem

solana-client and its constituent crates (listed further below) can compile much faster if we remove solana-sdk and solana-program dependencies, by ripping out what is needed from those crates.

Proposed Solution

At the time of writing, here are the modules that still need to be made available outside solana-program / solana-sdk.

Here are those modules grouped by each crate that depends on them:

solana-account-decoder-client-types (will be created by #2872)

  • solana_sdk::account

solana-transaction-status-client-types

  • solana_sdk::commitment_config
  • solana_program::message
  • solana_sdk::reward_type
  • solana_sdk::transaction
  • solana_sdk::transaction_context

solana-feature-set (required by solana-version which is required by solana-rpc-client-api)

  • solana_program::epoch_schedule

solana-vote-program (required by solana-rpc-client)

  • solana_program::epoch_schedule
  • solana_program::rent
  • solana_program::slot_hashes
  • solana_sdk::account
  • solana_sdk::transaction

solana-rpc-client-api:

  • solana_program::fee_calculator
  • solana_sdk::account
  • solana_sdk::commitment_config
  • solana_sdk::inflation
  • solana_sdk::transaction
  • solana_sdk::transport

solana-rpc-client

  • solana_program::epoch_schedule
  • solana_sdk::feature
  • solana_program::message
  • solana_program::sysvar
  • solana_sdk::account
  • solana_sdk::commitment_config
  • solana_sdk::epoch_info
  • solana_sdk::transaction

solana-rpc-client-nonce-utils:

  • solana_program::nonce
  • solana_sdk::account
  • solana_sdk::account_utils
  • solana_sdk::commitment_config

solana-metrics:

  • solana_sdk::genesis_config
  • solana_sdk::timing

solana-perf:

  • solana_program::message
  • solana_sdk::packet
  • solana_sdk::timing

solana-transaction-metrics-tracker:

  • solana_sdk::packet

solana-streamer:

  • solana_sdk::packet
  • solana_sdk::quic
  • solana_sdk::timing
  • solana_sdk::transport

solana-connection-cache:

  • solana_sdk::timing
  • solana_sdk::transport

solana-quic-client:

  • solana_sdk::quic
  • solana_sdk::signer
  • solana_sdk::transport

solana-thin-client:

  • solana_program::message
  • solana_sdk::account
  • solana_sdk::client
  • solana_sdk::commitment_config
  • solana_sdk::signer
  • solana_sdk::transaction
  • solana_sdk::transport

solana-tpu-client:

  • solana_program::message
  • solana_sdk::client
  • solana_sdk::commitment_config
  • solana_sdk::signer
  • solana_sdk::transaction
  • solana_sdk::transport

solana-udp-client:

  • solana_sdk::packet
  • solana_sdk::signer
  • solana_sdk::transport

solana-client:

  • solana_sdk::client
  • solana_sdk::commitment_config
  • solana_sdk::epoch_info
  • solana_sdk::quic
  • solana_sdk::signer
  • solana_sdk::timing
  • solana_sdk::transaction
  • solana_sdk::transport
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant