Skip to content

NalaGinrut/artanis

Repository files navigation

GitHub version GPLv3 LGPLv3 GNU Guile X86+ARM Travis CI

Since Jun 4th 2018, Microsoft has acquired GitHub, so that I reject to maintain GNU Artanis on GitHub. That means GNU Artanis will never try to organize community on GitHub, nor maintain any new code on GitHub, please visit GitLab: https://gitlab.com/NalaGinrut/artanis

NOTICE

According to GNU Ethical Repository Criteria Evaluations. GNU Artanis as GNU official project is not proper to be maintained on GitHub. So I will not do maintenance work for GNU Artanis on github to show my position on free software. That means I will not response to issues or pull requests on GitHub. Until GitHub show some respect to freedom of users on these issues:

  • No other nonfree software is required to use the site (thus, no Flash).
  • Does not discriminate against classes of users, or against any country.

The maintenance repo will be these two:

For historical reasons, GNU Artanis will maintain the site with gh-pages on GitHub since the pages service on GitLab is very different so I can't just move it simply. Before we have a better/modern Savannah, we have to endure this situation.

GNU Artanis

GNU Artanis aims to be a web application framework for Scheme. The philosophy of Artanis is to be very radical, and to try cutting-edge things. So use it at your own risk...however, playing with it may result in some cool experiences!

Features:

  • GPLv3+ & LGPLv3+
  • Very lightweight - easy to hack and learn for newbies.
  • Support JSON/CSV/XML/SXML.
  • A complete web-server implementation, including an error page handler.
  • High concurrent async non-blocking server core based on delimited continuations.
  • Has a Sinatra-like style route, hence the name "Artanis" ;-)
  • Supported databases (through guile-dbi): MySQL/SQLite/PostgreSQL.
  • Nice and easy web cache control.
  • Efficient HTML template parsing.
  • Efficient static file downloading/uploading.

Prerequisite

Guile-2.2+

Install

  • Compile and install See the manual below

  • Get docker image [Experimental]

docker run -p 3000:8080 -it bopjiang/artanis

art create test
cd test
art work

curl 127.0.0.1:8080

==> no index.html but it works!

Manual:

http://gnu.org/software/artanis/manual

Research paper:

How to contribute:

  • Contributing to the website -

The source to the manual is in the gh-pages branch.

Please do not modify the HTML pages directly. The pages are generated by a certain static page generator, so please take a look at the concerned directory -

https://gitlab.com/NalaGinrut/artanis/tree/gh-pages

  • Contributing to the manual -

The source to the manual is in the gh-pages branch.

Please do not modify the manual.texi and manual.html files directly, as they are generated by org-mode. The file to be edited is 'manual.org' -

https://gitlab.com/NalaGinrut/artanis/blob/gh-pages/docs/manual.org

  • Contributing to the Artanis framework -

Thank you very much for contributing!

In my opinion, bug reports are the most significant contributions. Please don't hesitate to report in a proper way for me to reproduce.

Please read the manual carefully, and ask questions to know more about GNU Artanis. The preferred way to discuss internals of Artanis is to send mail to artanis@gnu.org because it's good for archive. And you could discuss the bugs in issues for better tracking than mails.

I'll write articles about GNU Artanis occasionally on my blog: http://nalaginrut.com

GNU Artanis is aiming for product quality, since it's going to be used in a real product. So we need the contributions in good quality. The tiny or obvious fixes will be more likely to be applied. But bigger contributions will be under strict review and discussion.

Artwork and document writing is important contributions too and great appreciated in GNU Artanis community. So does advocating on your blogs, wikis, and webcasting tutorials. They're good ways to help GNU Artanis to form a community.

If you're using GNU Artanis in your project, please share your experiences. GNU Artanis wants to build a friendly community to help people know more about free software and help functional programming to be used in industry.