Skip to content
On this page

Maintenance Ruby 3.4 gets fixes, but no new features. Switch to Ruby 4.0 →

module · Ruby 3.4

Fiddle

1 instance methods 12 class methods

A libffi wrapper for Ruby.

Description

Fiddle is an extension to translate a foreign function interface (FFI) with ruby.

It wraps libffi, a popular C library which provides a portable interface that allows code written in one language to call code written in another language.

Example

Here we will use Fiddle::Function to wrap floor(3) from libm

Example
require 'fiddle'

libm = Fiddle.dlopen('/lib/libm.so.6')

floor = Fiddle::Function.new(
  libm['floor'],
  [Fiddle::TYPE_DOUBLE],
  Fiddle::TYPE_DOUBLE
)

puts floor.call(3.14159) #=> 3.0

Class methods 12

Instance methods 1

Constants

ALIGN_BOOL

The alignment size of a bool

ALIGN_CHAR

The alignment size of a char

ALIGN_DOUBLE

The alignment size of a double

ALIGN_FLOAT

The alignment size of a float

ALIGN_INT

The alignment size of an int

ALIGN_INT16_T

The alignment size of a int16_t

ALIGN_INT32_T

The alignment size of a int32_t

ALIGN_INT64_T

The alignment size of a int64_t

ALIGN_INT8_T

The alignment size of a int8_t

ALIGN_INTPTR_T

The alignment size of a intptr_t

ALIGN_LONG

The alignment size of a long

ALIGN_LONG_LONG

The alignment size of a long long

ALIGN_PTRDIFF_T

The alignment size of a ptrdiff_t

ALIGN_SHORT

The alignment size of a short

ALIGN_SIZE_T

The alignment size of a size_t

ALIGN_SSIZE_T

The alignment size of a ssize_t

ALIGN_UINTPTR_T

The alignment size of a uintptr_t

ALIGN_VOIDP

The alignment size of a void*

BUILD_RUBY_PLATFORM

Platform built against (i.e. “x86_64-linux”, etc.)

See also RUBY_PLATFORM

No documentation available

Qfalse

The value of Qfalse

Qnil

The value of Qnil

Qtrue

The value of Qtrue

Qundef

The value of Qundef

Add constants for backwards compat

No documentation available
No documentation available

RUBY_FREE

Address of the ruby_xfree() function

SIZEOF_BOOL

size of a bool

SIZEOF_CHAR

size of a char

SIZEOF_DOUBLE

size of a double

SIZEOF_FLOAT

size of a float

SIZEOF_INT

size of an int

SIZEOF_INT16_T

size of a int16_t

SIZEOF_INT32_T

size of a int32_t

SIZEOF_INT64_T

size of a int64_t

SIZEOF_INT8_T

size of a int8_t

SIZEOF_INTPTR_T

size of a intptr_t

SIZEOF_LONG

size of a long

SIZEOF_LONG_LONG

size of a long long

SIZEOF_PTRDIFF_T

size of a ptrdiff_t

SIZEOF_SHORT

size of a short

SIZEOF_SIZE_T

size of a size_t

SIZEOF_SSIZE_T

size of a ssize_t

SIZEOF_UCHAR

size of a unsigned char

SIZEOF_UINT

size of an unsigned int

SIZEOF_UINT16_T

size of a uint16_t

SIZEOF_UINT32_T

size of a uint32_t

SIZEOF_UINT64_T

size of a uint64_t

SIZEOF_UINT8_T

size of a uint8_t

SIZEOF_UINTPTR_T

size of a uintptr_t

SIZEOF_ULONG

size of a unsigned long

SIZEOF_ULONG_LONG

size of a unsigned long long

SIZEOF_USHORT

size of a unsigned short

SIZEOF_VOIDP

size of a void*

No documentation available

Returns a boolean regarding whether the host is WIN32