{"id":46,"date":"2005-07-02T10:06:58","date_gmt":"2005-07-02T10:06:58","guid":{"rendered":"http:\/\/www.reactivated.net\/weblog\/?p=46"},"modified":"2005-07-02T10:10:34","modified_gmt":"2005-07-02T10:10:34","slug":"extended-attribute-mono-bindings-now-for-freebsd-and-linux","status":"publish","type":"post","link":"http:\/\/www.reactivated.net\/weblog\/archives\/2005\/07\/extended-attribute-mono-bindings-now-for-freebsd-and-linux\/","title":{"rendered":"Extended Attribute Mono bindings, now for FreeBSD and Linux"},"content":{"rendered":"<p>Back in April I <a href=\"http:\/\/www.reactivated.net\/weblog\/archives\/2005\/04\/extended-attribute-mono-bindings\/\">contributed Extended Attribute (xattr) bindings<\/a> to <a href=\"http:\/\/www.mono-project.com\">Mono<\/a>, for use on Linux systems.<\/p>\n<p>I&#8217;ve just committed a new version of these, creating a transparent layer, so that these bindings work exactly the same on FreeBSD as they do on Linux. On FreeBSD systems, this will make use of FreeBSD&#8217;s extattr API &#8211; effectively making the use of extended attributes somewhat portable. The interface which Mono exposes is still the Linux xattr API, but the slight differences between xattr\/extattr are handled accordingly by the mono runtime. Thanks to Stephen Bennett (spb from Gentoo) for letting me test things on his FreeBSD install.<\/p>\n<p>Extended attributes are metadata (key\/value pairs) that you can apply to files, directories, and symlinks. For example, a program could store the mime-type of a file in an attribute to prevent the need to look it up in future. Extended attributes are nice, because they are stored in\/near the file inode, making them cheap to use if you are going to be using the file anyway. <a href=\"http:\/\/www.beagle-project.com\">Beagle<\/a> uses them internally and suffers quite a bit when it has to resort to using a traditional database instead.<\/p>\n<p>I&#8217;ve also been working on <a href=\"http:\/\/bugzilla.ximian.com\/show_bug.cgi?id=74872\">improving the unicode handling<\/a> in the System.Uri class, which is pretty nasty.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Back in April I contributed Extended Attribute (xattr) bindings to Mono, for use on Linux systems. I&#8217;ve just committed a new version of these, creating a transparent layer, so that these bindings work exactly the same on FreeBSD as they do on Linux. On FreeBSD systems, this will make use of FreeBSD&#8217;s extattr API &#8211; [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[6,1],"tags":[],"class_list":["post-46","post","type-post","status-publish","format-standard","hentry","category-beagle","category-gentoo"],"_links":{"self":[{"href":"http:\/\/www.reactivated.net\/weblog\/wp-json\/wp\/v2\/posts\/46","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.reactivated.net\/weblog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.reactivated.net\/weblog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.reactivated.net\/weblog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.reactivated.net\/weblog\/wp-json\/wp\/v2\/comments?post=46"}],"version-history":[{"count":0,"href":"http:\/\/www.reactivated.net\/weblog\/wp-json\/wp\/v2\/posts\/46\/revisions"}],"wp:attachment":[{"href":"http:\/\/www.reactivated.net\/weblog\/wp-json\/wp\/v2\/media?parent=46"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.reactivated.net\/weblog\/wp-json\/wp\/v2\/categories?post=46"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.reactivated.net\/weblog\/wp-json\/wp\/v2\/tags?post=46"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}