# About The YSLib Project is a project of platform-neutral framework consists of several multi-licensed open source libraries. It is aiming to develop native applications in a naturally cross-platform manner. See LICENSE.TXT in the source directory for licensing affairs. The main part (except libraries not being maintained in this project) of the libraries is coded in C++, which is strictly conforming to ISO/IEC 14882. (For features being used, see [here](StandardUsing.en-US.md). For some issues concerned with this project, see [here](ReportedIssues.en-US.md).) The project is currently in [Alpha state(zh-CN)](Releases.zh-CN.md) with following interface compatibility strategies: * [ABI](https://en.wikipedia.org/wiki/Application_binary_interface) compatibility for any revision depending on specific platform, toolchain or build configuration is never guaranteed. * ABI compatibility may not be retained between releases with same platform, toolchain and build configuration. * [API](https://en.wikipedia.org/wiki/Application_programming_interface) of libraries may be modified locally and there is no guarantee for compatibility between releases. * [UI](https://en.wikipedia.org/wiki/User_interface) of tools (see [contents(zh-CN)](Contents.zh-CN.md) for the list) may be modified progressively across builds; unless specified elsewhere, added features are kept being [backward compatible](https://en.wikipedia.org/wiki/Backward_compatibility) within at least one next releases. See [here(zh-CN)](GettingStarted.zh-CN.md) for basic steps to use YSLib in development. See [here(zh-CN)](Releases.zh-CN.md) for releases and plans. ## Currently supported platforms * ([Nintendo](https://en.wikipedia.org/wiki/Nintendo)/[iQue](https://en.wikipedia.org/wiki/IQue)) [DS](https://en.wikipedia.org/wiki/Nintendo_DS_line#Nintendo_DS_family) (arm-none-eabi) * using [DeSmuME](DeSmuME.en-US.md) to run on PC * MinGW32 (i686-w64-mingw32, compatible with i686-pc-mingw32) ## Pending supported platform * Android (arm-linux-androideabi) * MinGW64 (x86_64-w64-mingw32) * Linux32 (i686-linux-gnu) * Linux64 (x86_64-linux-gnu) ## Documentation ### Documentation in the YSLib project Documentation in the YSLib project consist of several parts: * The development documentation which is intended for the project maintainers, see [development(zh-CN)](Development.zh-CN.md). * The document in `doc/vsd` can be viewed by Microsoft Office Visio or Microsoft Visual Studio 2013. * Souce code documentation, which can be generated using Doxygen, see [building documentation(zh-CN)](BuildDocumentation.zh-CN.md). * Currently the Doxygen commands in the source code are mainly coded in simplified Chinese. It is planned to utilize Doxygen's `~[LanguageId]` command to generate multilingual documents in future. All other comments, however, should be in English by default. * Other non-generated documents are text files in the repository, like `Readme.zh-CN.txt`. ### About this wiki This wiki is a project related to the YSLib project. They are currently the only two members in the same project group, each has separated repository. Common documentation for the project group, general user documentation and list of significant features for the YSLib project are dominated by this wiki. Documentation in the YSLib project is mainly for maintainers of the project. They are bidirectionally referenced, namely the content of this wiki may be refenenced in the YSLib project and vice versa. Unless otherwise specified, the content of this wiki is fit for the current last master branch revision (i.e. the revision `tip` of `master` branch in the repository). See [here](WikiRules.en-US.md) for rules to edit this wiki. It is intended to reference every pages of this wiki in this page. # Contributions Contributions to the projects are welcomed. Provided materials thereby shall be adjusted by contributors (and the project maintainer) to conform the license of the corresponding projects if necessary. **Rules in this wiki are treated as consensus.** Rules in project documentation have effect on maintainers but not other contributors. However, the contents in the projects shall always be conforming to the project rules. To feedback or report issues, ~~use [Bitbucket issue tracker](https://bitbucket.org/FrankHB/yslib/issues/), or~~ contact the project maintainer as noted below. **NOTE** The Bitbucket project [is no longer available](https://bitbucket.org/blog/sunsetting-mercurial-support-in-bitbucket). The project is archived [here](https://bitbucket-archive.softwareheritage.org/projects/fr/FrankHB/yslib.html). ## Rules for project contents The following philosophy are generally accommodated throughout the projects. * **Do not [reinvent the wheel](https://en.wikipedia.org/wiki/Reinventing_the_wheel).** Projects here only accepts modular components which would be better elsewhere. Here "better" is defined as "superior than current solution in at least one aspect for consensually known need". * See the notes in [features(zh-CN)](Features.zh-CN.md) for the list of invented wheels and the rationale. * **Decline premature optimization.** However, what is "premature" is determined by the need, which would be probably variable. # Contacts * Mail to: [frankhb1989@gmail.com](mailto:frankhb1989@gmail.com) * Post [here](http://tieba.baidu.com/f?kw=%BB%C3%A4%CE%C9%CF%B5%DB) (mainly zh-CN)