{
  "_id": "6a5cf1219baadeef8ab5283e",
  "Package": "RSimpleFFI",
  "Version": "1.2.0.90000",
  "Title": "Simple Foreign Function Interface using 'S7' and 'libffi'",
  "Description": "Simple Foreign Function Interface for 'R' using 'libffi'\nand 'S7' classes. Supports calling 'C' functions with type\nconversion and struct handling. Includes standard 'C' types\n(int8, int16, int32, int64, uint variants), platform types\n(size_t, bool), floating point types, and complex struct types.\nHeader parsing uses 'Rtinycc' for 'TinyCC'-backed preprocessing\nand enables automatic generation of 'R' bindings from 'C'\nheader files, simplifying package development for 'C'\nlibraries.",
  "Authors@R": "c(\nperson(given = \"Sounkou Mahamane\", family = \"Toure\",\nemail = \"sounkoutoure@gmail.com\", role = c(\"aut\", \"cre\")),\nperson( given =\"Anthony Green, Red Hat, Inc and others\" , role = c(\"ctb\"),\ncomment = \"libffi authors and COPYRIGHT holders\")\n)",
  "License": "GPL-3",
  "Remotes": [
    "sounkou-bioinfo/Rtinycc",
    "sounkou-bioinfo/treesitter.c"
  ],
  "SystemRequirements": "GNU make, pkg-config (for libffi configuration on\nRTools)",
  "Encoding": "UTF-8",
  "Roxygen": "list(markdown = TRUE)",
  "RoxygenNote": "7.3.3",
  "URL": "https://github.com/sounkou-bioinfo/RSimpleFFI,\nhttps://sounkou-bioinfo.github.io/RSimpleFFI/",
  "BugReports": "https://github.com/sounkou-bioinfo/RSimpleFFI/issues",
  "Config/pak/sysreqs": "make pkg-config",
  "Repository": "https://sounkou-bioinfo.r-universe.dev",
  "Date/Publication": "2026-07-19 14:30:19 UTC",
  "RemoteUrl": "https://github.com/sounkou-bioinfo/RSimpleFFI",
  "RemoteRef": "HEAD",
  "RemoteSha": "82136a61e43dd216880cf763a99b97690a4d8cb3",
  "NeedsCompilation": "yes",
  "Packaged": {
    "Date": "2026-07-19 15:40:14 UTC",
    "User": "root"
  },
  "Author": "Sounkou Mahamane Toure [aut, cre],\nAnthony Green, Red Hat, Inc and others [ctb] (libffi authors and\nCOPYRIGHT holders)",
  "Maintainer": "Sounkou Mahamane Toure <sounkoutoure@gmail.com>",
  "_user": "sounkou-bioinfo",
  "_type": "src",
  "_file": "RSimpleFFI_1.2.0.90000.tar.gz",
  "_fileid": "https://r2.ropensci.org/29b5e0616b687f488ff8a9bcb0d4509d1b08145d360e2ac3fafb0069e88fe8c3",
  "_filesize": 1900148,
  "_sha256": "29b5e0616b687f488ff8a9bcb0d4509d1b08145d360e2ac3fafb0069e88fe8c3",
  "_expires": "2026-10-27T15:45:35.000Z",
  "_created": "2026-07-19T15:40:14.000Z",
  "_published": "2026-07-19T15:45:37.241Z",
  "_jobs": [
    {
      "job": 88209758895,
      "time": 174,
      "config": "linux-devel-arm64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "8444259836"
    },
    {
      "job": 88209758909,
      "time": 156,
      "config": "linux-devel-x86_64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "8444256685"
    },
    {
      "job": 88209758914,
      "time": 162,
      "config": "linux-release-arm64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "8444258154"
    },
    {
      "job": 88209758917,
      "time": 181,
      "config": "linux-release-x86_64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "8444260690"
    },
    {
      "job": 88209758898,
      "time": 109,
      "config": "macos-oldrel-arm64",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "8444249117"
    },
    {
      "job": 88209758899,
      "time": 275,
      "config": "macos-oldrel-x86_64",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "8444275317"
    },
    {
      "job": 88209758889,
      "time": 96,
      "config": "macos-release-arm64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "8444247015"
    },
    {
      "job": 88209758900,
      "time": 258,
      "config": "macos-release-x86_64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "8444272625"
    },
    {
      "job": 88209470739,
      "time": 200,
      "config": "source",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "8444231560"
    },
    {
      "job": 88209758879,
      "time": 120,
      "config": "wasm-release",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "8444251100"
    },
    {
      "job": 88209758893,
      "time": 123,
      "config": "windows-devel",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "8444250913"
    },
    {
      "job": 88209758891,
      "time": 116,
      "config": "windows-oldrel",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "8444250281"
    },
    {
      "job": 88209758876,
      "time": 131,
      "config": "windows-release",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "8444252581"
    }
  ],
  "_host": "GitHub-Actions",
  "_buildurl": "https://github.com/r-universe/sounkou-bioinfo/actions/runs/29693205783",
  "_status": "success",
  "_upstream": "https://github.com/sounkou-bioinfo/RSimpleFFI",
  "_commit": {
    "id": "82136a61e43dd216880cf763a99b97690a4d8cb3",
    "author": "sounkou-bioinfo <sounkoutoure@gmail.com>",
    "committer": "sounkou-bioinfo <sounkoutoure@gmail.com>",
    "message": "Fix package check test R executable lookup\n",
    "time": 1784471419
  },
  "_maintainer": {
    "name": "Sounkou Mahamane Toure",
    "email": "sounkoutoure@gmail.com",
    "login": "sounkou-bioinfo",
    "mastodon": "@bioinfhotep@genomic.social",
    "description": "Sequences and Consequences.",
    "uuid": 56392505
  },
  "_distro": "resolute",
  "_registered": true,
  "_dependencies": [
    {
      "package": "R",
      "version": ">= 4.4.0",
      "role": "Depends"
    },
    {
      "package": "S7",
      "role": "Imports"
    },
    {
      "package": "Rtinycc",
      "role": "Imports"
    },
    {
      "package": "treesitter",
      "role": "Imports"
    },
    {
      "package": "treesitter.c",
      "role": "Imports"
    },
    {
      "package": "tinytest",
      "role": "Suggests"
    },
    {
      "package": "bench",
      "role": "Suggests"
    }
  ],
  "_owner": "sounkou-bioinfo",
  "_selfowned": true,
  "_usedby": 0,
  "_updates": [
    {
      "week": "2025-48",
      "n": 118
    },
    {
      "week": "2025-49",
      "n": 185
    },
    {
      "week": "2025-50",
      "n": 8
    },
    {
      "week": "2026-16",
      "n": 3
    },
    {
      "week": "2026-19",
      "n": 2
    },
    {
      "week": "2026-20",
      "n": 1
    },
    {
      "week": "2026-29",
      "n": 2
    }
  ],
  "_tags": [
    {
      "name": "1.0.1",
      "date": "2025-12-01"
    },
    {
      "name": "1.2.0",
      "date": "2025-12-05"
    }
  ],
  "_stars": 8,
  "_contributors": [
    {
      "user": "sounkou-bioinfo",
      "count": 341,
      "uuid": 56392505
    }
  ],
  "_userbio": {
    "uuid": 56392505,
    "type": "user",
    "name": "Sounkou Mahamane Toure",
    "followers": 54,
    "description": "Sequences and Consequences."
  },
  "_downloads": {
    "count": 0,
    "source": "https://cranlogs.r-pkg.org/downloads/total/last-month/RSimpleFFI"
  },
  "_devurl": "https://github.com/sounkou-bioinfo/rsimpleffi",
  "_pkgdown": "https://sounkou-bioinfo.github.io/RSimpleFFI/",
  "_searchresults": 23,
  "_topics": [
    "libffi"
  ],
  "_rbuild": "4.6.1",
  "_assets": [
    "extra/citation.cff",
    "extra/citation.html",
    "extra/citation.json",
    "extra/citation.txt",
    "extra/contents.json",
    "extra/NEWS.html",
    "extra/NEWS.txt",
    "extra/readme.html",
    "extra/readme.md",
    "extra/RSimpleFFI.html",
    "manual.pdf"
  ],
  "_cranurl": false,
  "_exports": [
    "ArrayType",
    "bindgen_r_api",
    "bindgen_r_api_summary",
    "CIF",
    "create_builtin_type",
    "data_ptr",
    "data_ptr_ro",
    "dll_compile_and_load",
    "dll_ffi_symbol",
    "dll_info",
    "dll_is_loaded",
    "dll_list_loaded",
    "dll_load",
    "dll_load_r",
    "dll_load_system",
    "dll_symbol",
    "dll_unload",
    "EnumType",
    "ffi_all_offsets",
    "ffi_alloc",
    "ffi_alloc_buffer",
    "ffi_array_type",
    "ffi_bool",
    "ffi_call",
    "ffi_char",
    "ffi_cif",
    "ffi_cif_var",
    "ffi_cleanup_lib",
    "ffi_closure",
    "ffi_closure_pointer",
    "ffi_closures_supported",
    "ffi_compile_shlib",
    "ffi_copy_array",
    "ffi_copy_array_type",
    "ffi_create_bitfield_accessors",
    "ffi_create_helpers",
    "ffi_deref_pointer",
    "ffi_double",
    "ffi_enum",
    "ffi_enum_to_int",
    "ffi_extract_bit_field",
    "ffi_extract_bits64",
    "ffi_extract_signed_bit_field",
    "ffi_extract_signed_bits64",
    "ffi_field_info",
    "ffi_field_to_r",
    "ffi_fill_typed_buffer",
    "ffi_float",
    "ffi_free",
    "ffi_function",
    "ffi_get_element",
    "ffi_get_field",
    "ffi_get_symbol",
    "ffi_int",
    "ffi_int_to_enum",
    "ffi_int16",
    "ffi_int32",
    "ffi_int64",
    "ffi_int8",
    "ffi_is_null",
    "ffi_loaded_libs",
    "ffi_long",
    "ffi_longdouble",
    "ffi_longlong",
    "ffi_null_pointer",
    "ffi_offsetof",
    "ffi_pack_bits",
    "ffi_pack_bits64",
    "ffi_parse_header",
    "ffi_pointer",
    "ffi_print_struct",
    "ffi_raw",
    "ffi_read_global",
    "ffi_set_bit_field",
    "ffi_set_bits64",
    "ffi_set_field",
    "ffi_short",
    "ffi_size_t",
    "ffi_sizeof",
    "ffi_ssize_t",
    "ffi_string",
    "ffi_struct",
    "ffi_struct_array_from_list",
    "ffi_struct_from_list",
    "ffi_struct_to_list",
    "ffi_symbol",
    "ffi_symbol_from_address",
    "ffi_uchar",
    "ffi_uint",
    "ffi_uint16",
    "ffi_uint32",
    "ffi_uint64",
    "ffi_uint8",
    "ffi_ulong",
    "ffi_ulonglong",
    "ffi_union",
    "ffi_unpack_bits",
    "ffi_unpack_bits64",
    "ffi_ushort",
    "ffi_validate_call",
    "ffi_void",
    "ffi_wchar_t",
    "FFIClosure",
    "FFIType",
    "FieldInfo",
    "generate_api_constructor",
    "generate_api_offset_extractor",
    "generate_api_r_wrappers",
    "generate_api_struct_helpers",
    "generate_api_struct_typedef",
    "generate_enum_definition",
    "generate_function_wrapper",
    "generate_package_from_headers",
    "generate_package_init",
    "generate_package_init_c",
    "generate_package_struct_helpers_c",
    "generate_r_bindings",
    "generate_struct_definition",
    "generate_struct_helpers",
    "generate_typedef_definition",
    "generate_union_definition",
    "get_pointer_type",
    "is_null_pointer",
    "is_protected_ptr",
    "libffi_version",
    "make_typed_pointer",
    "NativeSymbol",
    "pointer_to_string",
    "pointer_to_string_safe",
    "ptr_to_sexp",
    "release_ptr",
    "sexp_ptr",
    "StructType",
    "tcc_available",
    "tcc_binary_path",
    "tcc_extract_defines",
    "tcc_preprocess",
    "tcc_run",
    "UnionType"
  ],
  "_help": [
    {
      "page": "ArrayType",
      "title": "FFI Array Type",
      "topics": [
        "ArrayType"
      ]
    },
    {
      "page": "bindgen_r_api",
      "title": "Generate FFI bindings for R's C API",
      "topics": [
        "bindgen_r_api"
      ]
    },
    {
      "page": "bindgen_r_api_summary",
      "title": "Get summary of R API bindings",
      "topics": [
        "bindgen_r_api_summary"
      ]
    },
    {
      "page": "CIF",
      "title": "FFI Call Interface (CIF)",
      "topics": [
        "CIF"
      ]
    },
    {
      "page": "create_builtin_type",
      "title": "Create built-in FFI type",
      "topics": [
        "create_builtin_type"
      ]
    },
    {
      "page": "data_ptr",
      "title": "Get data pointer from R vector with GC protection",
      "topics": [
        "data_ptr"
      ]
    },
    {
      "page": "data_ptr_ro",
      "title": "Get read-only data pointer from R vector with GC protection",
      "topics": [
        "data_ptr_ro"
      ]
    },
    {
      "page": "dll_ffi_symbol",
      "title": "Create FFI function from dynamically loaded function",
      "topics": [
        "dll_ffi_symbol"
      ]
    },
    {
      "page": "dll_info",
      "title": "Get information about a loaded library",
      "topics": [
        "dll_info"
      ]
    },
    {
      "page": "dll_is_loaded",
      "title": "Check if a symbol is loaded",
      "topics": [
        "dll_is_loaded"
      ]
    },
    {
      "page": "dll_list_loaded",
      "title": "List loaded libraries",
      "topics": [
        "dll_list_loaded"
      ]
    },
    {
      "page": "dynamic_library_management",
      "title": "Load a shared library/DLL",
      "topics": [
        "dll_compile_and_load",
        "dll_load",
        "dll_load_r",
        "dll_load_system",
        "dll_symbol",
        "dll_unload"
      ]
    },
    {
      "page": "EnumType",
      "title": "FFI Enumeration Type",
      "topics": [
        "EnumType"
      ]
    },
    {
      "page": "escape_r_name",
      "title": "Escape R name with backticks if needed",
      "topics": [
        "escape_r_name"
      ]
    },
    {
      "page": "ffi_all_offsets",
      "title": "Get all field offsets for a struct",
      "topics": [
        "ffi_all_offsets"
      ]
    },
    {
      "page": "alloc",
      "title": "Allocate a buffer for a given FFI type",
      "topics": [
        "ffi_alloc"
      ]
    },
    {
      "page": "ffi_alloc_buffer",
      "title": "Allocate a raw memory buffer (external pointer, auto-finalized)",
      "topics": [
        "ffi_alloc_buffer"
      ]
    },
    {
      "page": "ffi_array_type",
      "title": "Create an FFI array type",
      "topics": [
        "ffi_array_type"
      ]
    },
    {
      "page": "ffi_bool",
      "title": "Bool FFI type",
      "topics": [
        "ffi_bool"
      ]
    },
    {
      "page": "ffi_call",
      "title": "Make FFI function call",
      "topics": [
        "ffi_call"
      ]
    },
    {
      "page": "ffi_char",
      "title": "Char FFI type",
      "topics": [
        "ffi_char"
      ]
    },
    {
      "page": "ffi_cif",
      "title": "Prepare FFI call interface Prepare FFI call interface",
      "topics": [
        "ffi_cif"
      ]
    },
    {
      "page": "ffi_cif_var",
      "title": "Prepare FFI call interface for variadic functions",
      "topics": [
        "ffi_cif_var"
      ]
    },
    {
      "page": "ffi_closure",
      "title": "Create an FFI closure from an R function",
      "topics": [
        "ffi_closure"
      ]
    },
    {
      "page": "ffi_closure_pointer",
      "title": "Get the function pointer for an FFI closure",
      "topics": [
        "ffi_closure_pointer"
      ]
    },
    {
      "page": "ffi_closures_supported",
      "title": "Check if closures are supported on this platform",
      "topics": [
        "ffi_closures_supported"
      ]
    },
    {
      "page": "ffi_copy_array",
      "title": "Copy array from native memory",
      "topics": [
        "ffi_copy_array"
      ]
    },
    {
      "page": "ffi_copy_array_type",
      "title": "Copy array from native memory (ArrayType version)",
      "topics": [
        "ffi_copy_array_type"
      ]
    },
    {
      "page": "ffi_create_bitfield_accessors",
      "title": "Create accessor functions for a bit-field structure",
      "topics": [
        "ffi_create_bitfield_accessors"
      ]
    },
    {
      "page": "ffi_create_helpers",
      "title": "Create High-Level API Helpers for Struct",
      "topics": [
        "ffi_create_helpers"
      ]
    },
    {
      "page": "ffi_deref_pointer",
      "title": "Dereference a pointer",
      "topics": [
        "ffi_deref_pointer"
      ]
    },
    {
      "page": "ffi_double",
      "title": "double FFI type",
      "topics": [
        "ffi_double"
      ]
    },
    {
      "page": "ffi_enum",
      "title": "Create FFI enumeration type",
      "topics": [
        "ffi_enum"
      ]
    },
    {
      "page": "ffi_enum_to_int",
      "title": "Convert enum name to integer value",
      "topics": [
        "ffi_enum_to_int"
      ]
    },
    {
      "page": "ffi_extract_bit_field",
      "title": "Extract a single bit-field from a packed value",
      "topics": [
        "ffi_extract_bit_field"
      ]
    },
    {
      "page": "ffi_extract_bits64",
      "title": "Extract a single bit-field from a 64-bit packed value",
      "topics": [
        "ffi_extract_bits64"
      ]
    },
    {
      "page": "ffi_extract_signed_bit_field",
      "title": "Extract a signed bit-field from a packed value",
      "topics": [
        "ffi_extract_signed_bit_field"
      ]
    },
    {
      "page": "ffi_extract_signed_bits64",
      "title": "Extract a signed bit-field from a 64-bit packed value",
      "topics": [
        "ffi_extract_signed_bits64"
      ]
    },
    {
      "page": "ffi_field_info",
      "title": "Get field information from a struct type",
      "topics": [
        "ffi_field_info"
      ]
    },
    {
      "page": "ffi_fill_typed_buffer",
      "title": "Fill a typed buffer from an R vector (int or double)",
      "topics": [
        "ffi_fill_typed_buffer"
      ]
    },
    {
      "page": "ffi_float",
      "title": "float FFI type",
      "topics": [
        "ffi_float"
      ]
    },
    {
      "page": "ffi_free",
      "title": "Free memory pointed to by an external pointer",
      "topics": [
        "ffi_free"
      ]
    },
    {
      "page": "ffi_function",
      "title": "Create a reusable FFI function wrapper",
      "topics": [
        "ffi_function"
      ]
    },
    {
      "page": "ffi_get_element",
      "title": "Get element from struct array",
      "topics": [
        "ffi_get_element"
      ]
    },
    {
      "page": "ffi_get_field",
      "title": "Get field value from FFI structure",
      "topics": [
        "ffi_get_field"
      ]
    },
    {
      "page": "ffi_int",
      "title": "int FFI type",
      "topics": [
        "ffi_int"
      ]
    },
    {
      "page": "ffi_int_to_enum",
      "title": "Convert integer value to enum name",
      "topics": [
        "ffi_int_to_enum"
      ]
    },
    {
      "page": "ffi_int16",
      "title": "Int16 FFI type",
      "topics": [
        "ffi_int16"
      ]
    },
    {
      "page": "ffi_int32",
      "title": "Int32 FFI type",
      "topics": [
        "ffi_int32"
      ]
    },
    {
      "page": "ffi_int64",
      "title": "Int64 FFI type",
      "topics": [
        "ffi_int64"
      ]
    },
    {
      "page": "ffi_int8",
      "title": "Int8 FFI type",
      "topics": [
        "ffi_int8"
      ]
    },
    {
      "page": "ffi_is_null",
      "title": "Check if external pointer is NULL",
      "topics": [
        "ffi_is_null"
      ]
    },
    {
      "page": "ffi_loaded_libs",
      "title": "Get information about loaded native libraries",
      "topics": [
        "ffi_loaded_libs"
      ]
    },
    {
      "page": "ffi_long",
      "title": "long FFI type",
      "topics": [
        "ffi_long"
      ]
    },
    {
      "page": "ffi_longdouble",
      "title": "longdouble FFI type",
      "topics": [
        "ffi_longdouble"
      ]
    },
    {
      "page": "ffi_longlong",
      "title": "long long FFI type",
      "topics": [
        "ffi_longlong"
      ]
    },
    {
      "page": "ffi_null_pointer",
      "title": "Create a NULL pointer",
      "topics": [
        "ffi_null_pointer"
      ]
    },
    {
      "page": "ffi_offsetof",
      "title": "Get byte offset of a field in a structure",
      "topics": [
        "ffi_offsetof"
      ]
    },
    {
      "page": "ffi_pack_bits",
      "title": "Pack bit-fields into an integer",
      "topics": [
        "ffi_pack_bits"
      ]
    },
    {
      "page": "ffi_pack_bits64",
      "title": "Pack bit-fields into a 64-bit value",
      "topics": [
        "ffi_pack_bits64"
      ]
    },
    {
      "page": "ffi_parse_header",
      "title": "Parse C header file and create structured result",
      "topics": [
        "ffi_parse_header"
      ]
    },
    {
      "page": "ffi_pointer",
      "title": "pointer FFI type",
      "topics": [
        "ffi_pointer"
      ]
    },
    {
      "page": "ffi_print_struct",
      "title": "Pretty print struct contents",
      "topics": [
        "ffi_print_struct"
      ]
    },
    {
      "page": "ffi_raw",
      "title": "Char FFI type",
      "topics": [
        "ffi_raw"
      ]
    },
    {
      "page": "ffi_read_global",
      "title": "Read a global variable from a shared library",
      "topics": [
        "ffi_read_global"
      ]
    },
    {
      "page": "ffi_set_bit_field",
      "title": "Set a single bit-field in a packed value",
      "topics": [
        "ffi_set_bit_field"
      ]
    },
    {
      "page": "ffi_set_bits64",
      "title": "Set a single bit-field in a 64-bit packed value",
      "topics": [
        "ffi_set_bits64"
      ]
    },
    {
      "page": "ffi_set_field",
      "title": "Set field value in FFI structure",
      "topics": [
        "ffi_set_field"
      ]
    },
    {
      "page": "ffi_short",
      "title": "short FFI type",
      "topics": [
        "ffi_short"
      ]
    },
    {
      "page": "ffi_size_t",
      "title": "Size_t FFI type",
      "topics": [
        "ffi_size_t"
      ]
    },
    {
      "page": "ffi_sizeof",
      "title": "Get size of FFI type in bytes",
      "topics": [
        "ffi_sizeof"
      ]
    },
    {
      "page": "ffi_ssize_t",
      "title": "ssize_t FFI type",
      "topics": [
        "ffi_ssize_t"
      ]
    },
    {
      "page": "ffi_string",
      "title": "String FFI type",
      "topics": [
        "ffi_string"
      ]
    },
    {
      "page": "ffi_struct",
      "title": "Create FFI structure type",
      "topics": [
        "ffi_struct"
      ]
    },
    {
      "page": "ffi_struct_array_from_list",
      "title": "Allocate array of structs from R list",
      "topics": [
        "ffi_struct_array_from_list"
      ]
    },
    {
      "page": "ffi_struct_from_list",
      "title": "Create and initialize a struct from R list",
      "topics": [
        "ffi_struct_from_list"
      ]
    },
    {
      "page": "ffi_struct_to_list",
      "title": "Convert struct to R list",
      "topics": [
        "ffi_struct_to_list"
      ]
    },
    {
      "page": "ffi_symbol",
      "title": "Get native symbol reference",
      "topics": [
        "ffi_symbol"
      ]
    },
    {
      "page": "ffi_symbol_from_address",
      "title": "Create native symbol from direct address",
      "topics": [
        "ffi_symbol_from_address"
      ]
    },
    {
      "page": "ffi_uchar",
      "title": "Uchar FFI type",
      "topics": [
        "ffi_uchar"
      ]
    },
    {
      "page": "ffi_uint",
      "title": "uint FFI type",
      "topics": [
        "ffi_uint"
      ]
    },
    {
      "page": "ffi_uint16",
      "title": "Uint16 FFI type",
      "topics": [
        "ffi_uint16"
      ]
    },
    {
      "page": "ffi_uint32",
      "title": "Uint32 FFI type",
      "topics": [
        "ffi_uint32"
      ]
    },
    {
      "page": "ffi_uint64",
      "title": "Uint64 FFI type",
      "topics": [
        "ffi_uint64"
      ]
    },
    {
      "page": "ffi_uint8",
      "title": "Uint8 FFI type",
      "topics": [
        "ffi_uint8"
      ]
    },
    {
      "page": "ffi_ulong",
      "title": "ulong FFI type",
      "topics": [
        "ffi_ulong"
      ]
    },
    {
      "page": "ffi_ulonglong",
      "title": "ulonglong FFI type",
      "topics": [
        "ffi_ulonglong"
      ]
    },
    {
      "page": "ffi_union",
      "title": "Create FFI union type",
      "topics": [
        "ffi_union"
      ]
    },
    {
      "page": "ffi_unpack_bits",
      "title": "Unpack bit-fields from an integer",
      "topics": [
        "ffi_unpack_bits"
      ]
    },
    {
      "page": "ffi_unpack_bits64",
      "title": "Unpack bit-fields from a 64-bit value",
      "topics": [
        "ffi_unpack_bits64"
      ]
    },
    {
      "page": "ffi_ushort",
      "title": "Ushort FFI type",
      "topics": [
        "ffi_ushort"
      ]
    },
    {
      "page": "ffi_validate_call",
      "title": "Validate FFI call prerequisites",
      "topics": [
        "ffi_validate_call"
      ]
    },
    {
      "page": "ffi_void",
      "title": "void FFI type",
      "topics": [
        "ffi_void"
      ]
    },
    {
      "page": "ffi_wchar_t",
      "title": "Wide char FFI type",
      "topics": [
        "ffi_wchar_t"
      ]
    },
    {
      "page": "FFIClosure",
      "title": "FFI Closure - R function as C callback",
      "topics": [
        "FFIClosure"
      ]
    },
    {
      "page": "FFIType",
      "title": "FFI Type representation",
      "topics": [
        "FFIType"
      ]
    },
    {
      "page": "FieldInfo",
      "title": "Field Information Class",
      "topics": [
        "FieldInfo"
      ]
    },
    {
      "page": "generate_enum_definition",
      "title": "Generate R enum definition from parsed enum",
      "topics": [
        "generate_enum_definition"
      ]
    },
    {
      "page": "generate_function_wrapper",
      "title": "Generate R function wrapper from parsed function",
      "topics": [
        "generate_function_wrapper"
      ]
    },
    {
      "page": "generate_package_from_headers",
      "title": "Generate complete package from header files Generate complete package from header files",
      "topics": [
        "generate_package_from_headers"
      ]
    },
    {
      "page": "generate_package_init",
      "title": "Generate .onLoad/.onUnload for package",
      "topics": [
        "generate_package_init"
      ]
    },
    {
      "page": "generate_r_bindings",
      "title": "Generate R bindings from parsed header",
      "topics": [
        "generate_r_bindings"
      ]
    },
    {
      "page": "generate_struct_definition",
      "title": "Generate R struct definition from parsed struct",
      "topics": [
        "generate_struct_definition"
      ]
    },
    {
      "page": "generate_struct_helpers",
      "title": "Generate struct helper functions (allocator, from_list, to_list)",
      "topics": [
        "generate_struct_helpers"
      ]
    },
    {
      "page": "generate_typedef_definition",
      "title": "Generate R typedef alias from parsed typedef",
      "topics": [
        "generate_typedef_definition"
      ]
    },
    {
      "page": "generate_union_definition",
      "title": "Generate R union definition from parsed union",
      "topics": [
        "generate_union_definition"
      ]
    },
    {
      "page": "get_pointer_type",
      "title": "Get pointer type tag",
      "topics": [
        "get_pointer_type"
      ]
    },
    {
      "page": "is_null_pointer",
      "title": "Check if pointer is NULL",
      "topics": [
        "is_null_pointer"
      ]
    },
    {
      "page": "is_protected_ptr",
      "title": "Check if an object is a protected SEXP pointer",
      "topics": [
        "is_protected_ptr"
      ]
    },
    {
      "page": "libffi_version",
      "title": "Get libffi version string",
      "topics": [
        "libffi_version"
      ]
    },
    {
      "page": "make_typed_pointer",
      "title": "Create typed external pointer",
      "topics": [
        "make_typed_pointer"
      ]
    },
    {
      "page": "NativeSymbol",
      "title": "Native Symbol Reference",
      "topics": [
        "NativeSymbol"
      ]
    },
    {
      "page": "pointer_to_string",
      "title": "Convert pointer to string safely",
      "topics": [
        "pointer_to_string"
      ]
    },
    {
      "page": "pointer_to_string_safe",
      "title": "Convert pointer to string safely",
      "topics": [
        "pointer_to_string_safe"
      ]
    },
    {
      "page": "ptr_to_sexp",
      "title": "Get the R object from a protected SEXP pointer",
      "topics": [
        "ptr_to_sexp"
      ]
    },
    {
      "page": "release_ptr",
      "title": "Manually release a protected pointer",
      "topics": [
        "release_ptr"
      ]
    },
    {
      "page": "sexp_helpers",
      "title": "SEXP Pointer Helpers for Safe FFI Usage",
      "topics": [
        "sexp_helpers"
      ]
    },
    {
      "page": "sexp_ptr",
      "title": "Get SEXP pointer from R object with GC protection",
      "topics": [
        "sexp_ptr"
      ]
    },
    {
      "page": "StructType",
      "title": "FFI Structure Type",
      "topics": [
        "StructType"
      ]
    },
    {
      "page": "tcc_available",
      "title": "Check if TCC is available",
      "topics": [
        "tcc_available"
      ]
    },
    {
      "page": "tcc_binary_path",
      "title": "Get path to embedded TCC binary",
      "topics": [
        "tcc_binary_path"
      ]
    },
    {
      "page": "tcc_extract_defines",
      "title": "Extract #define macros from C header file or preprocessed lines",
      "topics": [
        "tcc_extract_defines"
      ]
    },
    {
      "page": "tcc_preprocess",
      "title": "Preprocess C header file using embedded TCC",
      "topics": [
        "tcc_preprocess"
      ]
    },
    {
      "page": "tcc_run",
      "title": "Compile and run C code using embedded TCC",
      "topics": [
        "tcc_run"
      ]
    },
    {
      "page": "UnionType",
      "title": "FFI Union Type",
      "topics": [
        "UnionType"
      ]
    }
  ],
  "_readme": "https://github.com/sounkou-bioinfo/RSimpleFFI/raw/HEAD/README.md",
  "_rundeps": [
    "cli",
    "formatR",
    "glue",
    "lambda.r",
    "lifecycle",
    "R6",
    "rlang",
    "Rtinycc",
    "S7",
    "treesitter",
    "treesitter.c",
    "vctrs"
  ],
  "_sysdeps": [
    {
      "shlib": "libffi",
      "package": "libffi8",
      "headers": "libffi-dev",
      "source": "libffi",
      "version": "3.5.2-4",
      "name": "libffi",
      "homepage": "https://sourceware.org/libffi/",
      "description": "Foreign Function Interface library runtime"
    }
  ],
  "_score": 3.808885867359812,
  "_indexed": true,
  "_nocasepkg": "rsimpleffi",
  "_universes": [
    "sounkou-bioinfo"
  ],
  "_binaries": [
    {
      "r": "4.7.0",
      "os": "linux",
      "version": "1.2.0.90000",
      "date": "2026-07-19T15:42:58.000Z",
      "distro": "resolute",
      "arch": "aarch64",
      "commit": "82136a61e43dd216880cf763a99b97690a4d8cb3",
      "fileid": "https://r2.ropensci.org/ed4f38f3473eb7c9b7aab1efc988ab9a6d9ff10b5f913e1ffe60f91f614749df",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/sounkou-bioinfo/actions/runs/29693205783"
    },
    {
      "r": "4.7.0",
      "os": "linux",
      "version": "1.2.0.90000",
      "date": "2026-07-19T15:42:40.000Z",
      "distro": "resolute",
      "arch": "x86_64",
      "commit": "82136a61e43dd216880cf763a99b97690a4d8cb3",
      "fileid": "https://r2.ropensci.org/372f1325190edddd1c5fbd17b240d15f6b0a89a0fc357e1cafeedcecfcc63d77",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/sounkou-bioinfo/actions/runs/29693205783"
    },
    {
      "r": "4.6.1",
      "os": "linux",
      "version": "1.2.0.90000",
      "date": "2026-07-19T15:43:00.000Z",
      "distro": "resolute",
      "arch": "aarch64",
      "commit": "82136a61e43dd216880cf763a99b97690a4d8cb3",
      "fileid": "https://r2.ropensci.org/83ad0361e665ef61a8e75a198d3c00fc047a5fceae2b498c0eea56b6935565ef",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/sounkou-bioinfo/actions/runs/29693205783"
    },
    {
      "r": "4.6.1",
      "os": "linux",
      "version": "1.2.0.90000",
      "date": "2026-07-19T15:43:05.000Z",
      "distro": "resolute",
      "arch": "x86_64",
      "commit": "82136a61e43dd216880cf763a99b97690a4d8cb3",
      "fileid": "https://r2.ropensci.org/851f201bd58c72382180892f9877f06e22edb5f805ae0afe6a39108963112012",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/sounkou-bioinfo/actions/runs/29693205783"
    },
    {
      "r": "4.5.3",
      "os": "mac",
      "version": "1.2.0.90000",
      "date": "2026-07-19T15:41:57.000Z",
      "arch": "aarch64",
      "commit": "82136a61e43dd216880cf763a99b97690a4d8cb3",
      "fileid": "https://r2.ropensci.org/692068394cf4b6b94bcb1cc673da8b5603107aa1d507c1d48584bcd8ab8a44ae",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/sounkou-bioinfo/actions/runs/29693205783"
    },
    {
      "r": "4.5.3",
      "os": "mac",
      "version": "1.2.0.90000",
      "date": "2026-07-19T15:44:00.000Z",
      "arch": "x86_64",
      "commit": "82136a61e43dd216880cf763a99b97690a4d8cb3",
      "fileid": "https://r2.ropensci.org/a302aba8513abf9c0848961c35ad60bb0cd18fd0f8a19af79fe97e480c4c7c14",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/sounkou-bioinfo/actions/runs/29693205783"
    },
    {
      "r": "4.6.1",
      "os": "mac",
      "version": "1.2.0.90000",
      "date": "2026-07-19T15:41:50.000Z",
      "arch": "aarch64",
      "commit": "82136a61e43dd216880cf763a99b97690a4d8cb3",
      "fileid": "https://r2.ropensci.org/df93e14b6cce3c98d47eee2cc39fe3c7bc722cfc0f9cbe1e69012c4585d225dd",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/sounkou-bioinfo/actions/runs/29693205783"
    },
    {
      "r": "4.6.1",
      "os": "mac",
      "version": "1.2.0.90000",
      "date": "2026-07-19T15:43:41.000Z",
      "arch": "x86_64",
      "commit": "82136a61e43dd216880cf763a99b97690a4d8cb3",
      "fileid": "https://r2.ropensci.org/c9013b827d0ee9fe9038f275f1b55766fa07adcd2744b92512e27091a145f788",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/sounkou-bioinfo/actions/runs/29693205783"
    },
    {
      "r": "4.6.0",
      "os": "wasm",
      "version": "1.2.0.90000",
      "date": "2026-07-19T15:42:41.000Z",
      "arch": "emscripten",
      "commit": "82136a61e43dd216880cf763a99b97690a4d8cb3",
      "fileid": "https://r2.ropensci.org/06c07f96b1cb625ea04ee198b87c9624422863c91958f136114762a18d5d79b7",
      "status": "success",
      "buildurl": "https://github.com/r-universe/sounkou-bioinfo/actions/runs/29693205783"
    },
    {
      "r": "4.7.0",
      "os": "win",
      "version": "1.2.0.90000",
      "date": "2026-07-19T15:41:36.000Z",
      "arch": "x86_64",
      "commit": "82136a61e43dd216880cf763a99b97690a4d8cb3",
      "fileid": "https://r2.ropensci.org/ec928a1a9b15a4e87be5711cbc50083066fea927a332e4645f6ebc03499dacca",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/sounkou-bioinfo/actions/runs/29693205783"
    },
    {
      "r": "4.5.3",
      "os": "win",
      "version": "1.2.0.90000",
      "date": "2026-07-19T15:41:34.000Z",
      "arch": "x86_64",
      "commit": "82136a61e43dd216880cf763a99b97690a4d8cb3",
      "fileid": "https://r2.ropensci.org/2971644176c2321cc8a66f6c4aa0d026238be2443dda2924212df5207a276b58",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/sounkou-bioinfo/actions/runs/29693205783"
    },
    {
      "r": "4.6.1",
      "os": "win",
      "version": "1.2.0.90000",
      "date": "2026-07-19T15:41:54.000Z",
      "arch": "x86_64",
      "commit": "82136a61e43dd216880cf763a99b97690a4d8cb3",
      "fileid": "https://r2.ropensci.org/d545e6468f7942b07cc9deb09ec0f6443bbfcc0bf9d23707a57cb4992e58d078",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/sounkou-bioinfo/actions/runs/29693205783"
    }
  ]
}