Hi Chip, What do you mean by "controlling zfs"? The answer to your question will depend on your requirements. If you're looking to do anything beyond checking dataset existence, creating datasets[1], snapshot, clone, destroying snaps, send, receive, rollback[2], managing bookmarks, or managing holds, you're going to find libzfs_core lacking.
At my last gig, I built a C++ abstraction layer on top of libzfs_core, libzfs, and libzpool, preferring the _core interfaces wherever extant (since they are MT-safe). If you're willing to deal with the complexity of libzfs and libzpool, it's possible to build quite complex pool and dataset management applications in C/C++ on top of the zfs apis (we were building an async replicated geographically distributed object store for a DR product.) Cheers, -Tom [1] (NB: for zpl, lzc_create does not imply mount -- after all, this involves a complicated sequence of vfs ops that should be done separately by the user in the sequence desired) [2] as with [1], only the dsl layer stuff: no vfs ops are performed On Wednesday, August 31, 2016, Schweiss, Chip <[email protected] <javascript:_e(%7B%7D,'cvml','[email protected]');>> wrote: > What is the status of libzfs_core? I haven't seen any chatter on it in a > while. > > Is this the recommended way for building applications that will control > ZFS directly or should I be looking at other approaches? > > Thanks! > -Chip > *openzfs-developer* | Archives > <https://www.listbox.com/member/archive/274414/=now> > <https://www.listbox.com/member/archive/rss/274414/28015421-f2adef36> | > Modify > <https://www.listbox.com/member/?&> > Your Subscription <http://www.listbox.com> > -- Tom Keiser [email protected] ------------------------------------------- openzfs-developer Archives: https://www.listbox.com/member/archive/274414/=now RSS Feed: https://www.listbox.com/member/archive/rss/274414/28015062-cce53afa Modify Your Subscription: https://www.listbox.com/member/?member_id=28015062&id_secret=28015062-f966d51c Powered by Listbox: http://www.listbox.com
