From: Steve Frécinaux Date: Fri, 16 Mar 2007 18:22:33 GMT Subject: Re: Libification project (SoC) Message-ID: <1174069353.2599.13.camel@mejai> In-Reply-To: On Fri, 2007-03-16 at 12:26 -0400, Nicolas Pitre wrote: > Sure. But the output from an executable is a damn good abstraction and > the executable itself is an impenetrable boundary. Anything can change > (and did change) underneath. Strictly speaking, you can use opaque structures for commits and so on (so that the outside world will only ever see a pointer), and use some getter/setters for commonly used stuffs (like datum, title, content). Also, I guess what people would expect from a C library is roughly the same as for the current plumbing... just easier to use from another program. It doesn't need a low-level access to data structure (most applications would be to interact with an existing repo or to store data for a third-party software, something that is high-level) and I don't think such an opaque API would be a huge constraint as soon as you keep the Object/Index/Tree/Commit/etc basic opaque structs.