Sha256: 513102f42ae1b9f2645bca6a9bf498186e20d2a7ad3b2beec31cef4404bb7e2e

Contents?: true

Size: 1.31 KB

Versions: 1

Compression:

Stored size: 1.31 KB

Contents

require "bundler/gem_tasks"
require "rake/testtask"

Rake::TestTask.new(:test) do |t|
  t.libs << "test"
  t.libs << "lib"
  t.test_files = FileList["test/**/*_test.rb"]
  t.warning = false
end

task default: :test

namespace :benchmark do
  task :algorithms do
    require "securerandom"
    require "benchmark/ips"
    require "blind_index"
    require "scrypt"
    require "argon2"

    key = SecureRandom.random_bytes(32)
    value = "secret"

    Benchmark.ips do |x|
      x.report("pbkdf2_hmac") { BlindIndex.generate_bidx(value, key: key, algorithm: :pbkdf2_hmac) }
      x.report("scrypt") { BlindIndex.generate_bidx(value, key: key, algorithm: :scrypt) }
      x.report("argon2") { BlindIndex.generate_bidx(value, key: key, algorithm: :argon2) }
    end
  end

  task :queries do
    require "benchmark/ips"
    require "active_record"
    require "blind_index"

    ActiveRecord::Base.establish_connection adapter: "sqlite3", database: ":memory:"

    ActiveRecord::Migration.create_table :users do
    end

    ActiveRecord::Migration.create_table :cities do
    end

    class User < ActiveRecord::Base
      blind_index :email
    end

    class City < ActiveRecord::Base
    end

    Benchmark.ips do |x|
      x.report("no index") { City.where(id: 1).first }
      x.report("index") { User.where(id: 1).first }
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
blind_index-0.3.2 Rakefile