From: nobu@... Date: 2017-04-17T07:03:25+00:00 Subject: [ruby-core:80726] [Ruby trunk Feature#13252] C API for creating strings without copying Issue #13252 has been updated by nobu (Nobuyoshi Nakada). normalperson (Eric Wong) wrote: > We can maybe use FL_USER{3,4,5}, and STR_NOFREE flags for > non-embed strings and allow up to 14 non-standard plug-in > *alloc implementations for users to define. FL_USER{3,4,5} are for `RSTRING_EMBED_LEN_MASK`. ---------------------------------------- Feature #13252: C API for creating strings without copying https://bugs.ruby-lang.org/issues/13252#change-64278 * Author: tenderlovemaking (Aaron Patterson) * Status: Open * Priority: Normal * Assignee: * Target version: ---------------------------------------- Hi, I'd like to have a C API that allows me to create String objects without copying the underlying `char *`. Basically a C API similar to the `rb_str_new_static`, but have the GC free the underlying `char *` when the object dies. The use case is that at work we have C libraries that allocate `char *` and we want to pass those to Ruby land without copying the buffer. Here is an example of what we're doing now: https://github.com/arthurnn/memcached/commit/1886546944b420dc6953096ba1f5eae772001e31#diff-f508f9b8263ea397534b2b3f8efed987R147 I'd like it if there was a public API for doing something like this. Thank you! P.S. I am sure I can't be the first to ask for this, but I couldn't find a similar issue in RedMine, so if this has been answered I apologize. P.P.S. I've added a patch for kind of what I want. ---Files-------------------------------- out.diff (1.66 KB) -- https://bugs.ruby-lang.org/ Unsubscribe: