Skip to content

[GLib][Ruby] Split the S3 bindings to arrow-s3-glib #51608

Description

@kou

Describe the enhancement requested

#50195 extracted the S3 module to a separated library.

We want to split the S3 bindings in GLib to a separated library: arrow-s3-glib

GLib TODO:

  • Extract all S3 related features to arrow-s3-glib (c_glib/arrow-s3-glib/) from arrow-glib
  • Add a filesystem GType registration API: garrow_file_system_register_type(type_name, gtype)?
  • Make garrow_file_system_new_raw() look up the registered GType and fall back to GArrowFileSystem when none is registered
  • Add a binding for arrow::fs::EnsureFinalized(): garrow_file_system_ensure_finalized()?
  • Update Linux packages

Ruby TODO:

  • Extract all S3 related features to red-arrow-s3 from red-arrow
  • Keep backward compatibility as much as possible but users who want to use S3 features need to require red-arrow-s3 explicitly

Component(s)

GLib

Activity

  1. alytantawyy commented on Oct 1, 2026

    @alytantawyy
    Contributor

    Take

  2. kou commented on Oct 1, 2026

    @kou
    MemberAuthor

    This is not an easy task. We need to create subissues and proceed this step by step for easy to review.

  3. alytantawyy commented on Oct 2, 2026

    @alytantawyy
    Contributor

    Makes sense @kou . Would something along these lines be a reasonable breakdown?

    1. Add the filesystem GType registration mechanism and update garrow_file_system_new_raw() to use it.
    2. Add the GLib binding for arrow::fs::EnsureFinalized().
    3. Create arrow-s3-glib and move the S3-specific GLib bindings/tests into it.
    4. Update the Linux packaging for arrow-s3-glib.
    5. Create red-arrow-s3 and move the S3-specific Ruby bindings into it, preserving backward compatibility where possible.

    If this breakdown looks good, we can create the subissues and start with the first one.

  4. kou commented on Oct 2, 2026

    @kou
    MemberAuthor

    Thanks. Let's try this approach. Could you open subissues?

    We may find additional tasks while we work on this but we can create more subissues when we find them.

  5. alytantawyy commented on Oct 3, 2026

    @alytantawyy
    Contributor

    @kou sounds great, can we please assign this to me?

  6. kou commented on Oct 5, 2026

    @kou
    MemberAuthor

    This is an umbrella issue. Let's keep no assigner for now. Let's assign subissues to you one by one instead. Other may help us. We may assign some subissues to others.

  7. alytantawyy commented on Oct 6, 2026

    @alytantawyy
    Contributor

    @kou Opened #51816 for the first subissue. I don’t seem to have permission to add the subissue relationship directly, could you attach it under this umbrella issue?

  8. kou commented on Oct 6, 2026

    @kou
    MemberAuthor

    Thanks! Done!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions