
Research
2025 Report: Destructive Malware in Open Source Packages
Destructive malware is rising across open source registries, using delays and kill switches to wipe code, break builds, and disrupt CI/CD.
activeuuid
Advanced tools
Add binary(16) UUIDs to ActiveRecord.
activeuuid adds the uuid type to your migrations. Example:
class CreateEmails < ActiveRecord::Migration
def self.up
create_table :emails, :id => false do |t|
t.uuid :id, :primary_key => true
t.uuid :sender_id # belongs_to :sender
t.string :subject
t.text :body
t.timestamp :sent_at
t.timestamps
end
add_index :emails, :id
end
def self.down
drop_table :emails
end
end
class Email < ActiveRecord::Base
include ActiveUUID::UUID
belongs_to :sender
end
class Email < ActiveRecord::Base
include ActiveUUID::UUID
natural_key :sender_id, :received_at
belongs_to :sender
end
natural_key generates a SHA1-based UUID in the ISO OID namespace by default. [7]
class Email < ActiveRecord::Base
include ActiveUUID::UUID
uuid_namespace "1dd74dd0-d116-11e0-99c7-5ac5d975667e"
natural_key :sender_id, :received_at
belongs_to :sender
end
uuid_namespace can either be a UUID in string format, or a UUIDTools::UUID object.
Here are some example specs:
require 'spec_helper'
describe Email do
context "when using uuid's as keys" do
let(:guid) { "1dd74dd0-d116-11e0-99c7-5ac5d975667e" }
let(:email) { Fabricate :email }
it "the id guid should be equal to the uuid" do
email.id.to_s.should eql(guid)
end
it "should be able to find an email by the uuid" do
Email.find(guid).id.to_s.should == guid
end
end
end
From [2]:
[Here is a] UUID: 1e8ef774-581c-102c-bcfe-f1ab81872213
A UUID like the one above is 36 characters long, including dashes. If you store this VARCHAR(36), you're going to decrease compare performance dramatically. This is your primary key, you don't want it to be slow.
At its bit level, a UUID is 128 bits, which means it will fit into 16 bytes, note this is not very human readable, but it will keep storage low, and is only 4 times larger than a 32-bit int, or 2 times larger than a 64-bit int.
Many of the existing examples of how to use UUIDs as primary keys in Rails use strings rather than bytes (e.g. [3]).
However, this plugin stores the primary keys as bytes. To the application the keys are represented by a UUIDTools::UUID object.
INSERT ... ON DUPLICATE KEY UPDATE syntaxidJames Golick's friendly is a great gem for NoSQL on MySQL. It's
a great gateway drug to systems like Cassandra for teams that are
already familiar with the ins-and-outs of MySQL.
Add this to your Gemfile
gem "activeuuid"
Or get the code here: https://github.com/jashmenn/activeuuid
Rails ~> 3.1.0
FAQs
Unknown package
We found that activeuuid demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Research
Destructive malware is rising across open source registries, using delays and kill switches to wipe code, break builds, and disrupt CI/CD.

Security News
Socket CTO Ahmad Nassri shares practical AI coding techniques, tools, and team workflows, plus what still feels noisy and why shipping remains human-led.

Research
/Security News
A five-month operation turned 27 npm packages into durable hosting for browser-run lures that mimic document-sharing portals and Microsoft sign-in, targeting 25 organizations across manufacturing, industrial automation, plastics, and healthcare for credential theft.