These are the things that are planned to be tackled next. The order in which they appear is not necessarily tied to their priority.
File Soft-Locking | Local Server | Shelves | Full Utf-8 Support | Branching / Merging | Communication Encryption | Multi-threading | Linux Server | User Groups | Crash Dumps | Unreal Engine Integration | Mac OS X Support File locking is the highest priority. What will be implemented is a "soft-locking", since it doesn't prevent files from being changed.
Local server is a way to have the server managed automatically for you on the same machine while running the client application. It's meant for people that want to work by themselves on their own machine, but still want to have versioning.
It is also meant to help people effortlessly try out this VCS in parallel to their current one, and if they decide to move forward with it for their team, all that it will take is to move the Ark server's root folder to another machine.
The core for shelves is actually already there. Whenever a user commits, he's actually creating a shelf first, so the objective is to extend it.
Unfortunately at the current time, even though jai is an utf-8 language, it lacks certain apis to manipulate utf-8 strings. This is the reason why at the time only ansi names of files are being properly handled.
Not much to say here, except that the goal is that branching, merging and switching branches should be easy.
From 0.7.0 the communication between clients and servers is encrypted.
When first starting the server, it will automatically create a 4096 bytes RSA private key and X509 certificate, which will be then used for encrypting the communication via TLS.
You can also replace these by your own, by placing them in the server folder with the same names.
The goal so far has been to focus on making Ark have very good single thread performance - because if you can't achieve that then multi-threading is kind of meaningless -, and I'm currently very happy with it.
However, that means that there's a few instances where it was decided to not add complexity of time slicing since they'll need to be multi-threaded anyway.
Linux client will most likely take a long time before it is tackled, however Linux server / cli support will be higher in priority.
Currently there's 3 user profiles: Normal, Manager and Admin. This already covers things like server management, but the goal is to extend the user permissions with user groups.
User groups will allow you to put users in multiple groups (e.g. Programmers, Localization) to for example prevent certain groups from pushing content to specific folders. The goal is to not force teams to have convoluted setups whenever restrictions need to be imposed.
Automatic generation of crash dumps if there's any problem with the app in order to help with bug reporting.
Ark can be used on it's own, however an integration with game engines can improve certain features (e.g. file locking). As such, and given that Unreal Engine is the current standard in the industry, an integration with this engine will be prioritized.
Mac OS X client has been the most asked feature for Ark, so it is now the main priority. Like the Windows version, it will support server, cli and gui.