content: [package]
  authors = ["guillaumelagrange <lagrange.guillaume.1@gmail.com>"]
  license = "MIT OR Apache-2.0"
  name = "llama-burn"
  version = "0.1.0"
  edition = "2021"
  description = "Llama 3 large language model with Burn"
  
  [features]
  default = ["pretrained"]
  pretrained = ["burn/network", "dep:dirs"]
  
  llama3 = ["dep:tiktoken-rs", "dep:rustc-hash", "dep:base64"]
  tiny = ["dep:tokenizers"]
  
  # Example feature flags (backend selection)
  tch-cpu = ["burn/tch"]
  tch-gpu = ["burn/tch"]
  cuda = ["burn/cuda"]
  vulkan = ["burn/vulkan"]
  
  # To import pytorch weights
  import = ["burn-import"]
  
  [dependencies]
  burn = { version = "0.18.0", default-features = false, features = ["std"] }
  burn-import = { version = "0.18.0", optional = true }
  
  itertools = { version = "0.12.1", default-features = false, features = [
      "use_alloc",
  ] }
  dirs = { version = "5.0.1", optional = true }
  serde = { version = "1.0.192", default-features = false, features = [
      "derive",
      "alloc",
  ] } # alloc is for no_std, derive is needed
  
  # Tiktoken tokenizer (llama 3)
  tiktoken-rs = { version = "0.5.8", optional = true }
  base64 = { version = "0.22.1", optional = true }
  rustc-hash = { version = "1.1.0", optional = true }
  
  # SentencePiece tokenizer (tiny llama / llama 2)
  tokenizers = { version = "0.19.1", default-features = false, features = [
      "onig",
  ], optional = true }
  
  rand = { version = "0.8.5", default-features = false, features = [
      "alloc",
      "std_rng",
  ] } # std_rng is for no_std
  
  [dev-dependencies]
  burn = { version = "0.18.0", default-features = false }
  clap = { version = "4.5.4", features = ["derive"] }
  