{"id":8083,"date":"2015-04-14T16:00:02","date_gmt":"2015-04-14T16:00:02","guid":{"rendered":"https:\/\/owncloud.com\/?p=8083"},"modified":"2015-04-14T16:00:02","modified_gmt":"2015-04-14T16:00:02","slug":"owncloud-and-sabredav-part-ii","status":"publish","type":"post","link":"https:\/\/owncloud.com\/de\/blogs\/owncloud-and-sabredav-part-ii\/","title":{"rendered":"ownCloud and sabre\/dav part II"},"content":{"rendered":"<p>This is part two of a conversation with ownCloud core developers Thomas M\u00fcller, Robin Appelman and Vincent Petry, where we explored sabre\/dav and how it is used within ownCloud. We discussed WebDAV and sabre\/dav <a href=\"https:\/\/owncloud.com\/blog\/owncloud-and-sabredav\/\" target=\"_blank\" rel=\"noopener noreferrer\">in the previous post<\/a>, ending with how it ended up in ownCloud. Today, we&#8217;ll discuss where ownCloud and sabre\/dav are going now and in the future!<\/p>\n<div id=\"attachment_8059\" style=\"width: 320px\" class=\"wp-caption alignright\"><a href=\"http:\/\/evertpot.com\/\" target=\"_blank\" rel=\"noopener noreferrer\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-8059\" class=\"size-medium wp-image-8059\" src=\"https:\/\/owncloud.com\/wp-content\/uploads\/2015\/03\/178960-300x300.jpeg\" alt=\"Evert Pot\" width=\"300\" height=\"300\" \/><\/a><p id=\"caption-attachment-8059\" class=\"wp-caption-text\">Evert Pot, sabre\/dav-zen master from fruux<\/p><\/div>\n<h2>Collaboration upstream<\/h2>\n<p>As noted in <a href=\"https:\/\/owncloud.com\/blog\/owncloud-and-sabredav\/\" target=\"_blank\" rel=\"noopener noreferrer\">part 1<\/a>, ownCloud developers have worked with sabre\/dav to improve the performance of showing folder contents. This isn&#8217;t the only place where ownCloud and sabre\/dav worked closely. There has been a variety of contributions from ownCloud to sabre\/dav but sabre\/dav team members have also been giving input on ownCloud code and solutions developed in ownCloud. According to Thomas, the lead sabre\/dav developer at fruux, <a href=\"http:\/\/evertpot.com\/\" target=\"_blank\" rel=\"noopener noreferrer\">Evert Pot<\/a>, &#8222;is really a nice guy. He is technically highly skilled, especially in WebDAV and PHP and everything around. And he has always been helpful over the past years.&#8220; He adds that &#8222;this is one of the reasons we stick with sabre\/dav. A good relationship with upstream is &#8222;very important,&#8220; Vincent and Robin agree.<\/p>\n<p>Vincent notes that &#8222;he seems excited about how we use sabre\/dav.&#8220; He speculates that &#8222;we might be one of the projects that use the framework in a very deep way; we probably use most of the features of sabre\/dav.&#8220; Thomas adds that &#8222;we use it extensively, but any PHP based group ware also uses sabre\/dav. Horde has it, group office has it.&#8220; ownCloud is among a big group of open source projects that use sabre\/dav, and everybody agreed that the project is important for the &#8222;PHP and open source ecosystem.&#8220;<br \/>\n<a href=\"http:\/\/fruux.com\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" class=\"alignright size-medium wp-image-8063\" src=\"https:\/\/owncloud.com\/wp-content\/uploads\/2015\/03\/fruux_logo-300x120.png\" alt=\"fruux_logo\" width=\"300\" height=\"120\" \/><\/a><br \/>\nIt is good to see that ownCloud embraces the open source process. Various ownCloud contributors helped sabre\/dav out in the code department, like <a href=\"https:\/\/github.com\/fruux\/sabre-dav\/commits?author=tanghus\" target=\"_blank\" rel=\"noopener noreferrer\">here<\/a>, <a href=\"https:\/\/github.com\/fruux\/sabre-dav\/commits?author=DeepDiver1975\" target=\"_blank\" rel=\"noopener noreferrer\">here<\/a>, <a href=\"https:\/\/github.com\/fruux\/sabre-dav\/commits?author=schiesbn\" target=\"_blank\" rel=\"noopener noreferrer\">here<\/a> and <a href=\"https:\/\/github.com\/fruux\/sabre-dav\/commits?author=LukasReschke\" target=\"_blank\" rel=\"noopener noreferrer\">here<\/a>.<br \/>\nWhen asked, <a href=\"http:\/\/tobschall.de\/\" target=\"_blank\" rel=\"noopener noreferrer\">Dominik Tobschall<\/a> from <a href=\"https:\/\/fruux.com\/\" target=\"_blank\" rel=\"noopener noreferrer\">fruux<\/a> had this to say from their side of the collaboration:<\/p>\n<blockquote>\n<p style=\"text-align: left;\" align=\"center\">\n&#8222;It&#8217;s great to see projects like ownCloud adopting <a href=\"http:\/\/sabre.io\/\" target=\"_blank\" rel=\"noopener noreferrer\">sabre\/dav<\/a>. While we have plenty of users, the most valuable users are the ones that contribute back. We highly value thinking about the future together. By cooperating we can create a stronger product for everyone. An active community is really vital for any open source project. It benefits every implementor, not just of <a href=\"http:\/\/sabre.io\/\" target=\"_blank\" rel=\"noopener noreferrer\">sabre\/dav<\/a>, but also our various spin-off projects, such as <a href=\"http:\/\/sabre.io\/vobject\" target=\"_blank\" rel=\"noopener noreferrer\">sabre\/vobject<\/a> (a library for parsing and manipulating vCard, iCalendar, jCard and jCal), <a href=\"http:\/\/sabre.io\/xml\" target=\"_blank\" rel=\"noopener noreferrer\">sabre\/xml<\/a> (the only XML library that you may not hate), and many other projects we work on. Last but not least our own end-user product <a href=\"https:\/\/fruux.com\/\" target=\"_blank\" rel=\"noopener noreferrer\">fruux<\/a> -a unified service to manage contacts, calendars and tasks for consumers and teams- is also built on top of our open source technologies. Open source is not just a major part of our strategy, but also what we think is the right way to build software.&#8220;<\/p>\n<\/blockquote>\n<h2>Future of WebDAV in ownCloud<\/h2>\n<p>Vincent will be part of the work to update sabre\/dav in ownCloud to version 2. It requires some &#8222;cleanup and re-factoring,&#8220; but stands to make &#8222;our code more beautiful.&#8220; The upgrade will be preceded by &#8222;adding unit tests everywhere to make sure the upgrade is smooth.&#8220; Vincent notes that the team is also looking into using sabre\/dav on a deeper level, &#8222;not just files, also for other things like tags and users.&#8220; It is possible because Microsoft uses WebDAV for email and contacts as well. Thomas points out that ActiveSync is a &#8222;perverted form of WebDAV, using a binary form of XML.&#8220;<\/p>\n<p><a href=\"http:\/\/sabre.io\/\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" class=\"alignright size-medium wp-image-8061\" src=\"https:\/\/owncloud.com\/wp-content\/uploads\/2015\/03\/sabre_dav_logo-300x72.png\" alt=\"sabre_dav_logo\" width=\"300\" height=\"72\" \/><\/a><br \/>\nVincent calls their thinking around WebDAV usage a &#8222;research project.&#8220; Thomas states that &#8222;you have crazy ideas, inspired from nowhere, but also from Evert himself&#8220;. He explains that &#8222;you grab 5 minutes and scratch some code together to see if it works properly. And discuss it and iterate.&#8220; He describes parts of the current API as needing a cleanup, something the team has been thinking about for a while.<\/p>\n<p>Vincent describes how ownCloud has &#8222;multiple API formats. Internal REST API&#8217;s, OCS, WebDAV.&#8220; The team, however, wants to consolidate these formats and have only one solution in the end. In a GitHub discussion Vincent proposed to &#8222;drop WebDAV and move to REST.&#8220; At this point Evert &#8222;clarified that we can actually use WebDAV for things other than files,&#8220; which opens up new opportunities. Vincent wasn&#8217;t aware that WebDAV is that extensible, and the team is now thinking about putting in even more effort in to WebDAV, rather than less.<\/p>\n<p>This is an example of how the team works with sabre\/dav and fruux, Evert in particular to which Thomas notes is &#8222;mainly on GitHub where we know this is a WebDAV issue and where we know we need his expertise. We just directly ping him&#8211; &#8218;Hey Evert, can you have a quick look?&#8216; And he&#8217;s usually responding really fast. It&#8217;s an awesome collaboration with fruux, I have to say.&#8220;<\/p>\n<h2>Conclusion<\/h2>\n<p>When asked what would have been great to know before starting to use sabre\/dav, Thomas simply says &#8222;nothing.&#8220; He elaborates, explaining that &#8222;there are good examples and good documentation, and because of the power of open source there are at least two or three other projects that also use sabre\/dav, so you can see how they do it. From my point of view it is quite self-explanatory.&#8220;<\/p>\n<p>Vincent also points out that he &#8222;started using it later&#8220; and didn&#8217;t know &#8222;WebDAV is so extensible and that you can use sabre\/dav for that, not just for files.&#8220; It was the function names that &#8222;misled me,&#8220; he adds, but with version 2 &#8222;these are more generic.&#8220;<\/p>\n<p>Thomas and Robin both agree and Thomas notes that &#8222;you can extend it to almost anything, which is the power of the protocol itself, like Microsoft uses it for email.&#8220; Comparing it to other API&#8217;s, he points out that &#8222;you can avoid using a nightmarish, ancient protocol like IMAP.&#8220; WebDAV is &#8222;almost &#8218;REST&#8217;ful,&#8220; and its &#8222;simplicity, yet flexibility helps you design proper API&#8217;s.&#8220; A first version of any API &#8222;goes mad&#8220; but with a &#8222;proper concept and mechanism&#8220; you can build a good API.<\/p>\n<p>The team is looking forward to deeper integration with WebDAV in ownCloud through <a href=\"http:\/\/sabre.io\/\" target=\"_blank\" rel=\"noopener noreferrer\">sabre\/dav<\/a>, and the benefits it brings &#8211; &#8222;beyond just code.&#8220; The good collaboration with upstream, not to mention the well designed code itself, has proven to be inspiring.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>This is part two of a conversation with ownCloud core developers Thomas M\u00fcller, Robin Appelman and Vincent Petry, where we explored sabre\/dav and how it is used within ownCloud. We discussed WebDAV and sabre\/dav in the previous post, ending with how it ended up in ownCloud. Today, we&#8217;ll discuss where ownCloud and sabre\/dav are going [&hellip;]<\/p>\n","protected":false},"author":7,"featured_media":78665,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_et_pb_use_builder":"","_et_pb_old_content":"","_et_gb_content_width":"","inline_featured_image":false,"footnotes":""},"categories":[342,332,333,335],"tags":[],"class_list":["post-8083","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-cloud","category-coding","category-community","category-development"],"acf":[],"_links":{"self":[{"href":"https:\/\/owncloud.com\/de\/wp-json\/wp\/v2\/posts\/8083","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/owncloud.com\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/owncloud.com\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/owncloud.com\/de\/wp-json\/wp\/v2\/users\/7"}],"replies":[{"embeddable":true,"href":"https:\/\/owncloud.com\/de\/wp-json\/wp\/v2\/comments?post=8083"}],"version-history":[{"count":0,"href":"https:\/\/owncloud.com\/de\/wp-json\/wp\/v2\/posts\/8083\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/owncloud.com\/de\/wp-json\/wp\/v2\/media\/78665"}],"wp:attachment":[{"href":"https:\/\/owncloud.com\/de\/wp-json\/wp\/v2\/media?parent=8083"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/owncloud.com\/de\/wp-json\/wp\/v2\/categories?post=8083"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/owncloud.com\/de\/wp-json\/wp\/v2\/tags?post=8083"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}