<div>Hi,</div><div>I wanted to announce that I've been working on a project called Shepherd (<a href="http://xcambar.github.com/shepherd-js">http://xcambar.github.com/shepherd-js</a>), a pure Javascript implementation of Harmony modules.</div>

<div><br></div><div><div>Why such a project ? Fun first. Second, I was really looking forward to use harmony modules. Third, I wanted an efficient way to use my modules on the server and the client. And it seems to me that current module loaders and APIs available will be, at the end, superseded by the module syntax being defined at ECMA for the future versions of ECMAScript.</div>

<br class="Apple-interchange-newline"></div><div>The syntax used is as of 2012-02-27 (<a href="http://wiki.ecmascript.org/doku.php?id=harmony:modules&rev=1330363672">http://wiki.ecmascript.org/doku.php?id=harmony:modules&rev=1330363672</a>), I couldn't find the time to implement the latest proposal (besides I would have had to choose one of the two variants), but apart from the syntax, it is usable both on the client and the server, and tested.</div>

<div><br></div><div>The parser/lexer has been developped using JISON (<a href="http://zaach.github.com/jison/">http://zaach.github.com/jison/</a>) and is available as a separate project (<a href="https://github.com/xcambar/harmony-parser">https://github.com/xcambar/harmony-parser</a>).</div>

<div><br></div><div>For backward-compatibility, the module declarations have to be put into comments (which you will discover in the examples provided on the site), it is compatible with CommonJS modules (user-defined as well as native modules in Node.js), and, although not critical to the project, a compatibility wrapper for the AMD API is on its way.</div>

<div>Regarding production-level requirements, an optimizer has been implemented, but it still requires testing before being released.</div><div><br></div><div>I've had and I'm still having a really good time working on this project and I would really appreciate if I could have some feedback from the readers and contributors of the mailing-list.</div>

<div>A mailing list has been created for the project, still empty of messages simply because it has been created yesterday ;)</div><div><br></div><div>Regards,</div><div><br></div><div><div>-- <br><div>Xavier CAMBAR</div>


<div><a href="https://twitter.com/#!/xcambar" target="_blank">@xcambar</a></div><div><br></div></div>
</div>