Version 1.0.0 released

posted by christoph.kappestein on 2018-01-13

We are really happy to announce the first stable release of Fusio. This is an important milestone for the project so I like to take the time to talk about the current status and future plans of the project.

Current status

Sometimes I get emails from new users which simply ask me to explain what is Fusio, whats the use case and what are the benefits of using Fusio. Since these are such fundamental questions I like to answer them in this post. At first I like to use the quote from the website:

Fusio is an open source API management platform which helps to build and manage REST APIs. Fusio provides all tools to quickly build an API from different data sources yet it is possible to create complete customized responses.

Today there are many use cases which require a REST API. Whether you need an API to expose your business functionality, develop One-Page web applications, Mobile-Apps or Micro-Services. Fusio is a tool which helps to develop such APIs.

Fusio "helps" means that it covers already common topics like versioning, documentation, authorization, analytics, rate limiting, etc. so you can concentrate on writing only the business logic of your API. Please take a look at the demo action which shows how a simple endpoint logic looks. Most actions simply get a connection and execute a specific task i.e. in the demo we use the SQL connection to select specific data from a table. But Fusio has also many different connections to connect i.e. to a MongoDB, AMQP, HTTP or ElasticSearch service. Thus also the name Fusio it is a project to fuse different services to create something new.

Fusio simplifies also the developing process by providing a simple and clean architecture, so you dont have to build complex class hierarchies and thus the code base remains easy maintainable. The action is the basic building block which contains the business logic. The action should only contain simple logic and use the fitting connections to fulfill the task. In case an action becomes too complicated it is probably a smell that you should either create an external service (HTTP) which you can use in your action or move this logic to a composer package which you can then simply call in your action. In this way you also develop code which is complete framework independent.

Future plans

With this 1.0 release we think that Fusio has a great feature scope but we have already many great ideas to improve Fusio further. If you are interested in those topics you can checkout our wiki Todo and Connections (not implemented) page to see a list of pending topics.

Besides those technical features we really would like to improve our documentation to help new users get started quickly. For this we would like to improve our manual but also add new video tutorials and recipes which explain a specific topic. So if you have ideas to improve the documentation please let us know.

Also I like to thank every user which has participated in the project. Especially in the last months we got many new followers. We have reached the GitHub trends several times and also the website and Twitter users are rising. So if you like the project and want to see it grow further please checkout the repository on GitHub and follow us on Twitter. And of course if you plan to start a new API project this is the perfect time to start with Fusio.