Updated wiki files

This commit is contained in:
2015-05-05 12:00:25 +02:00
parent 6cc16333d2
commit e2150754cb
38 changed files with 290 additions and 124 deletions

View File

@@ -3,41 +3,50 @@ layout: default
title: Wiki
base_url: ../
---
<ul>
<li><a href="Community-collaboration">Community collaboration</a></li>
<li><a href="Connectors">Connectors</a></li>
<li><a href="Documentation-_Router">Documentation Router</a></li>
<li><a href="Documentation">Documentation</a></li>
<li><a href="Documentation__Connector">Documentation Connector</a></li>
<li><a href="Documentation__Request">Documentation Request</a></li>
<li><a href="Documentation__Response">Documentation Response</a></li>
<li><a href="Documentation__Router">Documentation Router</a></li>
<li><a href="Documentation__Service">Documentation Service</a></li>
<li><a href="EWSGI-Open-Questions">EWSGI Open Questions</a></li>
<li><a href="EWSGI-specification---difference-in-main-proposals">EWSGI specification difference in main proposals</a></li>
<li><a href="EWSGI-specification">EWSGI specification</a></li>
<li><a href="EWSGI">EWSGI</a></li>
<li><a href="Filter">Filter</a></li>
<li><a href="Home">Home</a></li>
<li><a href="HTTP-client-library">HTTP client library</a></li>
<li><a href="Libraries">Libraries</a></li>
<li><a href="Library-conneg">Library conneg</a></li>
<li><a href="Meetings">Meetings</a></li>
<li><a href="Projects-new-suggestions">Projects new suggestions</a></li>
<li><a href="Projects">Projects</a></li>
<li><a href="Request-and-response">Request and response</a></li>
<li><a href="roadmap">roadmap</a></li>
<li><a href="Router">Router</a></li>
<li><a href="server_architecture">server architecture</a></li>
<li><a href="Source-structure">Source structure</a></li>
<li><a href="Spec-server-architecture">Spec server architecture</a></li>
<li><a href="Task-json">Task json</a></li>
<li><a href="Tasks-Roadmap">Tasks Roadmap</a></li>
<li><a href="Useful-links">Useful links</a></li>
<li><a href="Using-the-policy-driven-framework">Using the policy driven framework</a></li>
<li><a href="Web-meeting-2012-09-18">Web meeting 2012 09 18</a></li>
<li><a href="Writing-the-handlers">Writing the handlers</a></li>
<li><a href="Wsf-caching-policy">Wsf caching policy</a></li>
<li><a href="Wsf-previous-policy">Wsf previous policy</a></li>
<li><a href="WSF_OPTIONS_POLICY">WSF OPTIONS POLICY</a></li>
<ul>
<li><a href="community.md">community</a></li>
<li><a href="Deployment.md">Deployment</a></li>
<li><a href="documentation">documentation</a>
<ul><ul>
<li><a href="documentation/Connectors.md">Connectors</a></li>
<li><a href="documentation/Filter.md">Filter</a></li>
<li><a href="documentation/HTTP-client-library.md">HTTP client library</a></li>
<li><a href="documentation/Library-conneg.md">Library conneg</a></li>
<li><a href="documentation/README.md">README</a></li>
<li><a href="documentation/Request-and-response.md">Request and response</a></li>
<li><a href="documentation/Request.md">Request</a></li>
<li><a href="documentation/Response.md">Response</a></li>
<li><a href="documentation/Router.md">Router</a></li>
<li><a href="documentation/Service.md">Service</a></li>
</ul></ul></li><li><a href="EWSGI">EWSGI</a>
<ul><ul>
<li><a href="EWSGI/Open-Questions.md">Open Questions</a></li>
<li><a href="EWSGI/README.md">README</a></li>
<li><a href="EWSGI/specification---difference-in-main-proposals.md">specification difference in main proposals</a></li>
<li><a href="EWSGI/specification.md">specification</a></li>
</ul></ul></li> <li><a href="Libraries.md">Libraries</a></li>
<li><a href="policy-driven-framework">policy driven framework</a>
<ul><ul>
<li><a href="policy-driven-framework/Using-the-policy-driven-framework.md">Using the policy driven framework</a></li>
<li><a href="policy-driven-framework/Writing-the-handlers.md">Writing the handlers</a></li>
<li><a href="policy-driven-framework/Wsf-caching-policy.md">Wsf caching policy</a></li>
<li><a href="policy-driven-framework/Wsf-previous-policy.md">Wsf previous policy</a></li>
<li><a href="policy-driven-framework/WSF_OPTIONS_POLICY.md">WSF OPTIONS POLICY</a></li>
</ul></ul></li><li><a href="project">project</a>
<ul><ul>
<li><a href="project/meetings">meetings</a>
<ul><ul>
<li><a href="project/meetings/Web-meeting-2012-09-18.md">Web meeting 2012 09 18</a></li>
</ul></ul></li> <li><a href="project/Meetings.md">Meetings</a></li>
<li><a href="project/Projects-new-suggestions.md">Projects new suggestions</a></li>
<li><a href="project/Projects.md">Projects</a></li>
<li><a href="project/roadmap.md">roadmap</a></li>
<li><a href="project/Task-json.md">Task json</a></li>
<li><a href="project/Tasks-Roadmap.md">Tasks Roadmap</a></li>
<li><a href="project/Useful-links.md">Useful links</a></li>
</ul></ul></li> <li><a href="README.md">README</a></li>
<li><a href="server_architecture.png">server architecture</a></li>
<li><a href="Source-structure.md">Source structure</a></li>
<li><a href="Spec-server-architecture.md">Spec server architecture</a></li>
</ul>

24
wiki.py
View File

@@ -12,12 +12,22 @@ base_url: %s
---
"""
wiki = HEADER % ('Wiki', '../') + ' <ul>\n'
for file in os.listdir('wiki'):
def process_dir (dn,base=''):
s = '<ul>\n'
for file in os.listdir(dn):
if not file.startswith('.') and not file.endswith('.mediawiki'):
originalname = os.path.splitext(file)[0]
name = " ".join(originalname.replace('-', ' ').replace('_', ' ').split())
path = os.path.join ('wiki', file)
path = os.path.join (dn, file)
uri = "%s%s" % (base,file)
if os.path.isdir(path):
print 'Enter', path
s += '<li><a href="%s">%s</a>\n' % (uri, name)
s += '<ul>'
s += process_dir (path,uri + '/')
s += '</ul>'
s += '</li>'
else:
print 'Processing', path
with open(path, 'r') as f:
content = f.read()
@@ -25,8 +35,12 @@ for file in os.listdir('wiki'):
content = (HEADER % (name, '../../') + content)
with open(path, 'w') as f:
f.write(content.replace('(./wiki/', '(../').replace('(./', '(../'))
wiki += ' <li><a href="%s">%s</a></li>\n' % (originalname, name)
wiki += ' </ul>'
s += ' <li><a href="%s">%s</a></li>\n' % (uri, name)
s += ' </ul>'
return s
wiki = HEADER % ('Wiki', '../') + '\n';
wiki += process_dir ("wiki");
with open('wiki.html', 'w') as f:
f.write(wiki)
print 'Done'

138
wiki/Deployment.md Normal file
View File

@@ -0,0 +1,138 @@
---
layout: default
title: Deployment
base_url: ../../
---
EWF Deployment
==============
##Apache on Windows
###Apache Install
- Check the correct version (Win 32 or Win64)
- Apache Version: Apache 2.4.4
- Windows: http://www.apachelounge.com/download/
###Deploying EWF CGI
####CGI overview
> A new process is started for each HTTP request. So if there are N request to the same CGI
> program, the code of the CGI program is loaded into memory N times.
> When a CGI program finished handling a request, the program terminates
1. Build EWF application.
```
ec -config app.ecf -target app_cgi -finalize -c_compile -project_path .
Note: change app.ecf and target app_cgi based on your own configuration.
```
2. Copy the generated exe file and the www content.
```
Copy the app.exe and the folder www into a folder served by apache2, for example under
<APACHE_PATH>/htdocs
<APACHE_PATH> = path to your apache installation
Edit httpd.conf under c:/<APACHE_PATH>/conf
DocumentRoot "c:/<APACHE_PATH>/htdocs"
<Directory "c:/<APACHE_PATH>/htdocs">
AllowOverride All --
Require all granted -- this is required in Apache 2.4.4
</Directory>
```
3. Check that you have the following modules enabled.
```
LoadModule cgi_module modules/mod_cgi.so
LoadModule rewrite_module modules/mod_rewrite.so
```
*Tip:*
To check the syntax of your httpd.conf file. From command line run the following.
```
$>httpd - t
```
####.htaccess CGI
http://perishablepress.com/stupid-htaccess-trics/
```
Options +ExecCGI +Includes +FollowSymLinks -Indexes
AddHandler cgi-script exe
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^$ $service [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !$service
RewriteRule ^(.*)$ $service/$1
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L]
</IfModule
```
Replace $service with the name of your executable service, for example app_service.exe
##Deploying EWF FCGI
- To deploy FCGI you will need to download the mod_fcgi module.
- You can get it from here http://www.apachelounge.com/download/
###FCGI overview
> FastCGI allows a single, long-running process to handle more than one user request while keeping close to
> the CGI programming model, retaining the simplicity while eliminating the overhead of creating a new
> process for each request. Unlike converting an application to a web server plug-in, FastCGI applications
> remain independent of the web server.
1. Build EWF application
```
ec -config app.ecf -target app_fcgi -finalize -c_compile -project_path .
Note: change app.ecf and target app_fcgi based on your own configuration.
```
2. Copy the generated exe file and the www content
```
Copy the app.exe and the folder "www" into a folder served by apache2, for example under
<APACHE_PATH>/htdocs.
<APACHE_PATH> = path to your apache installation
Edit httpd.conf under c:/<APACHE_PATH>/conf
DocumentRoot "c:/<APACHE_PATH>/htdocs"
<Directory "c:/<APACHE_PATH>/htdocs">
AllowOverride All --
Require all granted -- this is required in Apache 2.4.4
</Directory>
```
Check that you have the following modules enabled.
```
LoadModule rewrite_module modules/mod_rewrite.so
LoadModule fcgid_module modules/mod_fcgid.so
```
By default Apache does not comes with fcgid module, so you will need to
download it, and put the module under Apache2/modules
####.htaccess FCGI
http://perishablepress.com/stupid-htaccess-tricks/
```
Options +ExecCGI +Includes +FollowSymLinks -Indexes
<IfModule mod_fcgid.c>
AddHandler fcgid-script .ews
FcgidWrapper $FULL_PATH/$service .ews
</IfModule>
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteBase /
RewriteRule ^$ service.ews [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !=/favicon.ico
RewriteCond %{REQUEST_URI} !service.ews
RewriteRule ^(.*)$ service.ews/$1 RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L]
</IfModule>
```
Replace $service with the name of your executable $service, for example app_service.exe
You will need to create an service.ews file, this file will be located at the same place where you
copy your app service executable.

View File

@@ -1,4 +1,4 @@
Menu :: [[Doc_Getting_Started|Getting Started]] :: [[Doc_Community|Community]]
Menu :: [[Doc_Getting_Started.mediawiki|Getting Started]] :: [[Community-collaboration.md|Community]]
= Getting Started =
This page will help you to get started with EWF. We will first see how to install EWF and then how to compile and run the venerable Hello World example.

View File

@@ -1,4 +1,4 @@
Menu :: [[Doc_Getting_Started|Getting Started]] :: [[Doc_Community|Community]]
Menu :: [[Doc_Getting_Started.mediawiki|Getting Started]] :: [[community.md|Community]]
= Eiffel Web Framework =
Framework to build web applications in Eiffel

View File

@@ -1,6 +0,0 @@
---
layout: default
title: Documentation Router
base_url: ../../
---
See WSF_ROUTER

View File

@@ -1,6 +0,0 @@
---
layout: default
title: Documentation Connector
base_url: ../../
---
See WSF_CONNECTOR

View File

@@ -1,6 +0,0 @@
---
layout: default
title: Documentation Request
base_url: ../../
---
See WSF_REQUEST

View File

@@ -1,6 +0,0 @@
---
layout: default
title: Documentation Router
base_url: ../../
---
See WSF_ROUTER

View File

@@ -1,6 +1,6 @@
---
layout: default
title: EWSGI Open Questions
title: Open Questions
base_url: ../../
---
## STRING_32, UTF-8, ... ? ##

View File

@@ -1,10 +1,10 @@
---
layout: default
title: EWSGI
title: README
base_url: ../../
---
- See proposed specifications: [EWSGI specification](../EWSGI-specification)
- See [Open questions](../EWSGI-Open-Questions)
- See proposed specifications: [EWSGI specification](EWSGI-specification.md)
- See [Open questions](EWSGI-Open-Questions.md)
- And below the various proposals and associated decision
----

View File

@@ -1,6 +1,6 @@
---
layout: default
title: EWSGI specification difference in main proposals
title: specification difference in main proposals
base_url: ../../
---
Currently the **design of the EWSGI** is not going very fast, mainly due to conflicts for the core design.

View File

@@ -1,6 +1,6 @@
---
layout: default
title: EWSGI specification
title: specification
base_url: ../../
---
**WARNING** **THIS PAGE IS IN PROGRESS, AS IT IS NOW, IT NEEDS UPDATE SINCE IT DOES NOT REFLECT THE FUTURE INTERFACE**

View File

@@ -1,6 +1,6 @@
---
layout: default
title: Home
title: README
base_url: ../../
---
# Eiffel-Web-Framework #
@@ -11,21 +11,21 @@ The official documentation/wiki is located at [https://github.com/EiffelWebFrame
## Organization ##
- Mailing list: please visit and subscribe to the mailing list page [http://groups.google.com/group/eiffel-web-framework](http://groups.google.com/group/eiffel-web-framework) ![logo](http://groups.google.com/intl/en/images/logos/groups_logo_sm.gif)
- Most of the topics are discussed on the mailing list (google group).
- For time to time we have [web meetings](../Meetings), and less frequently [physical meetings](../Meetings) that occurs usually during other Eiffel related events.
- For time to time we have [web meetings](project/Meetings.md), and less frequently [physical meetings](project/Meetings.md) that occurs usually during other Eiffel related events.
## Documentation ##
- [Documentation](../Documentation)
- [Documentation](documentation/README.md)
## Contributions ##
- You want to contribute or follow the progress/discussion, see the [collaboration page](../Community-collaboration)
- Potential tasks/projects on EWF: [Projects page](../Projects)
- You want to contribute or follow the progress/discussion, see the [collaboration page](community.md)
- Potential tasks/projects on EWF: [Projects page](project/Projects.md)
## See also ##
- [list of tasks, and a potential roadmap](../Tasks-Roadmap)
- [General source structure of this project](../Source-structure)
- EWSGI: [Eiffel Web Server Gateway Interface](../EWSGI)
- [Overview of the server side architecture](../Spec-Server-Architecture)
- This project is also a collection of [Libraries](../Libraries) related to the Web
- [list of tasks, and a potential roadmap](project/Tasks-Roadmap.md)
- [General source structure of this project](Source-structure.md)
- EWSGI: [Eiffel Web Server Gateway Interface](EWSGI/README.md)
- [Overview of the server side architecture](Spec-Server-Architecture.md)
- This project is also a collection of [Libraries](Libraries.md) related to the Web
## Note ##
- This wiki needs to be updated, in the meantime, please have a look at the presentation: [https://docs.google.com/presentation/pub?id=1GPFv6aHhTjFSLMnlAt-J4WeIHSGfHdB42dQxmOVOH8s&start=false&loop=false&delayms=3000](https://docs.google.com/presentation/pub?id=1GPFv6aHhTjFSLMnlAt-J4WeIHSGfHdB42dQxmOVOH8s&start=false&loop=false&delayms=3000)

View File

@@ -1,6 +1,6 @@
---
layout: default
title: Community collaboration
title: community
base_url: ../../
---
This project is a community project

View File

@@ -51,3 +51,6 @@ It's fairly easy to write your own connector. Just inherit from these classes:
* WGI_INPUT_STREAM
* WGI_OUTPUT_STREAM
* WSF_SERVICE_LAUNCHER
See WSF_CONNECTOR

View File

@@ -1,6 +1,6 @@
---
layout: default
title: Documentation
title: README
base_url: ../../
---
# Current Status
@@ -32,7 +32,7 @@ This is the low level of the framework, at this point, `req` provides access to
The response `res` is the interface to send data back to the client.
For convenience, the framework provides richer service interface that handles the most common needs (filter, router, ...).
> [Learn more about service](Documentation__Service)
> [Learn more about service](Service.md)
<a name="wiki-request"></a><a name="wiki-response"></a><a name="wiki-request-and-response"></a>
<a name="request"></a><a name="response"></a><a name="request-and-response"></a>
@@ -55,7 +55,7 @@ Any incoming http request is represented by an new object of type **WSF_REQUEST*
The **WSF_RESPONSE** represents the communication toward the client, a service need to provide correct headers, and content. For instance the `Content-Type`, and `Content-Length`. It also allows to send data with chunked encoding.
> [Learn more about request](Documentation__Request) and [about response](Documentation__Response)
> [Learn more about request](Request.md) and [about response](Response.md)
<a name="wiki-connector"></a>
<a name="connector"></a>
@@ -71,7 +71,7 @@ Currently 3 main connectors are available:
At compilation time, you can use a default connector (by using the associated default lib), but you can also use a mixed of them and choose which one to execute at runtime.
It is fairly easy to add new connector, it just has to follow the EWSGI interface
> [Learn more about connector](Documentation__Connector)
> [Learn more about connector](Connector.md)
<a name="wiki-router"></a>
<a name="router"></a>
@@ -118,7 +118,7 @@ How we do that in EWF? : Router with (or without context).
Related code: wsf_router, wsf_router_context
Examples
> [Learn more about router](Documentation__Router)
> [Learn more about router](Router.md)
# EWF components
## URI Handler:
@@ -185,25 +185,26 @@ examples
External libraries are included, such as Cypress OAuth (Security), HTML parsing library, Template Engine Smarty.
## server
* __ewsgi__: Eiffel Web Server Gateway Interface read more
* __ewsgi__: Eiffel Web Server Gateway Interface [read more](../EWSGI/index.md).
* connectors: various web server connectors for EWSGI
* __libfcgi__: Wrapper for libfcgi SDK
* __wsf__: Web Server Framework [read more]
* __router__: URL dispatching/routing based on uri, uri_template, or custom read more
* __wsf__: Web Server Framework
* __router__: URL dispatching/routing based on uri, uri_template, or custom [read more](Router.md).
* __filter__: Filter chain [read more](Filter.md).
* __wsf_html__: (html and css) Content generator from the server side.
* CMS example: <https://github.com/EiffelWebFramework/cms/tree/master/example>
## protocol
* __http__: HTTP related classes, constants for status code, content types, ... read more
* __uri_template__: URI Template library (parsing and expander) read more
* __content_negotiation__: CONNEG library (Content-type Negociation) read more
* __http__: HTTP related classes, constants for status code, content types, ...
* __uri_template__: URI Template library (parsing and expander)
* __content_negotiation__: [CONNEG](Library-conneg.md) library (Content-type Negociation)
## Client
* __http_client__: simple HTTP client based on cURL readmore
* __http_client__: simple [HTTP client](HTTP-client.library.md) based on cURL
* __Firebase API__: <https://github.com/EiffelWebFramework/Redwood>
## Text
* __encoder__: Various simple encoders: base64, url-encoder, xml entities, html entities read more
* __encoder__: Various simple encoders: base64, url-encoder, xml entities, html entities
## Utils
* __error__: very simple/basic library to handle error

View File

@@ -0,0 +1,22 @@
---
layout: default
title: Request
base_url: ../../
---
See WSF_REQUEST
## About parameters
Note that by default there is a smart computation for the query/post/... parameters:
for instance
- `q=a&q=b` : will create a **WSF_MULTIPLE_STRING** parameter with name **q** and value `[a,b]`
- `tab[a]=ewf&tab[b]=demo` : will create a **WSF_TABLE** parameter with name **tab** and value `{ "a": "ewf", "b": "demo"}`
- `tab[]=ewf&tab[]=demo` : will create a **WSF_TABLE** parameter with name **tab** and value `{ "1": "ewf", "2": "demo"}`
- `tab[foo]=foo&tab[foo]=bar` : will create a **WSF_TABLE** parameter with name **tab** and value `{ "foo": "bar"}` **WARNING: only the last `tab[foo]` is kept**.
Those rules are applied to query, post, path, .... parameters.
## How to get the input data (i.e entity-body) ?
See `{WSF_REQUEST}.read_input_data_into (buf: STRING)`
## How to get the raw header data (i.e the http header text) ?
See `{WSF_REQUEST}.raw_header_data: detachable READABLE_STRING_32`

View File

@@ -1,6 +1,6 @@
---
layout: default
title: Documentation Response
title: Response
base_url: ../../
---
See WSF_RESPONSE

View File

@@ -5,4 +5,7 @@ base_url: ../../
---
The primary goal of the router (class _WSF_ROUTER_) is to dispatch requests according to the request URI.
See WSF_ROUTER
**TODO**: describe the router interface

View File

@@ -1,6 +1,6 @@
---
layout: default
title: Documentation Service
title: Service
base_url: ../../
---
EWF Services

View File

@@ -28,4 +28,4 @@ is_system_options_forbidden.
WSF_ROUTED_SKELETON_SERVICE also inherits from WSF_PROXY_USE_POLICY. This determines if the server will require clients to use a proxy server. By default, it will do so for HTTP/1.0 clients. This is a sensible default, as the framework assumes an HTTP/1.1 client throughout. If you are sure that you will only ever have HTTP/1.1 clients, then you can instead inherit from WSF_NO_PROXY_POLICY, as RESTBUCKS_SERVER does. If not, then you need to implement proxy_server.
Next you have to [write your handler(s)](../Writing-the-handlers)
Next you have to [write your handler(s)](Writing-the-handlers.md)

View File

@@ -223,6 +223,6 @@ This routine is called for a normal (updating) PUT request. You have to update t
## Implementing the policies
* [WSF_OPTIONS_POLICY](../WSF_OPTIONS_POLICY)
* [WSF_PREVIOUS_POLICY](../Wsf-previous-policy)
* [WSF_CACHING_POLICY](../Wsf-caching-policy)
* [WSF_OPTIONS_POLICY](WSF_OPTIONS_POLICY.md)
* [WSF_PREVIOUS_POLICY](Wsf-previous-policy.md)
* [WSF_CACHING_POLICY](Wsf-caching-policy.md)

View File

@@ -5,5 +5,5 @@ base_url: ../../
---
# Previous and future meetings
* [Web-meeting: 2012-09-18](../Web-meeting-2012-09-18)
* [Web-meeting: 2012-09-18](meetings/Web-meeting-2012-09-18.md)
* For previous meetings, check the ["meeting" topics](https://groups.google.com/forum/?fromgroups=#!tags/eiffel-web-framework/meeting) on the [forum](http://groups.google.com/group/eiffel-web-framework)

View File

@@ -4,7 +4,7 @@ title: Projects new suggestions
base_url: ../../
---
Use this to suggest new projects, or request features.
The content of this page will be moved to the main [Projects](../Projects) page for time to time.
The content of this page will be moved to the main [Projects](Projects.md) page for time to time.
For any entry, please use this template
----

View File

@@ -241,4 +241,4 @@ If you are a student, don't hesitate to pick one, or even suggest a new project,
----
# Feel free to add new idea below this line
----
Use the following page [Projects new suggestions](../Projects new suggestions) to suggest new project, or request a feature.
Use the following page [Projects new suggestions](Projects-new-suggestions.md) to suggest new project, or request a feature.

View File

@@ -3,7 +3,7 @@ layout: default
title: Tasks Roadmap
base_url: ../../
---
Check new roadmap wiki page: [roadmap](../roadmap)
Check new roadmap wiki page: [roadmap](roadmap.md)
## Future
* Focus on REST API
- Hypermedia API
@@ -37,5 +37,5 @@ Check new roadmap wiki page: [roadmap](../roadmap)
* Installation scripts
## Contributors ##
- See [the collaboration page](../Community-collaboration)
- See [the collaboration page](../community.md)

View File

@@ -6,4 +6,4 @@ base_url: ../../
# Upcoming versions
# Current state: oct-2013
- check previous wiki page: [Tasks roadmap](../Tasks roadmap)
- check previous wiki page: [Tasks roadmap](Tasks-roadmap.md)