unofficial mirror of guile-devel@gnu.org 
 help / color / mirror / Atom feed
From: Nala Ginrut <nalaginrut@gmail.com>
To: guile-devel <guile-devel@gnu.org>
Cc: guile-user <guile-user@gnu.org>
Subject: [Potluck] a lightweight web framework
Date: Sun, 17 Feb 2013 13:03:15 +0800	[thread overview]
Message-ID: <1361077395.2535.39.camel@Renee-desktop.suse> (raw)

Sorry for the late guys!
I planed to give you a lightweight web-framework, and you may use it to
build your own site with Guile easily. Besides, with Guile's inner
web-server, you could have 10K concurrency performance.

But life is no so perfect, I was sick for few days, so I'm late for the
potluck. When I tried to polish it more beautiful, I found a bug in web
module (anyway it's a nice discover for a hacker). 
Seems that I have to release it as a half-baked one :-(
But good news is that I'll continue to polish it.

I put here:
https://gitorious.org/glow/artanis

Let me introduce it:
* very lightweight: the core artanis.scm almost 300 lines, easy to hack
and learn for newbies.
* a relative complete web-server implementation, include error page
throw and all the HTTP method(you have to specify your own handler)
* 10K concurrent performance for the server, takes advantage of the
Guile inner server. IIRC, andy once said it's 9K+ for static pages.
It's enough for you own site/blog.
* sinatra like style route, that's why it names "artanis" ;-)
* Database support(now use guile-dbi), mysql/sqlite/postgresql. But it's
easy to port to other database binding. (but I like dbi)
* session support (thanks for andy's advice)
* HTML template of SXML (very easy to use for Lisper)

I have no time to write a tutorial for it before I release, but there'll
be one soon. And you may read test.scm/blog.scm to get to know how it
works. 
https://gitorious.org/glow/artanis/blobs/master/test.scm
https://gitorious.org/glow/artanis/blobs/master/blog.scm
(for blog.scm, you may need blogdb.mysql script to build your database
quickly)

You may write a blog in ten minutes if you're familiar with web develop
and SQL.

PS: and I have to mention that bug, I believe it's a bug.

When the server-handler get the request, I found the uri in request have
no 'host', it's #f. It causes trouble for me to implement url redirect
mechanism, which used to implement admin authentication. 
I do think uri should keep 'host' value because it's useful for later.
And it's OK for 'read-request-line', it'll parse and store 'host'
correctly.

I think there's some link in the inner server module, which dropped
'host' value or created a new uri and throw the old-correct one. 
Any comments?


Sorry again for the half-baked work, it looks no cool. But I've ever
planed a perfect one... :-(





             reply	other threads:[~2013-02-17  5:03 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-02-17  5:03 Nala Ginrut [this message]
2013-02-17  6:14 ` [Potluck] a lightweight web framework Daniel Hartwig
2013-02-17  6:50   ` Nala Ginrut
2013-02-17  6:18 ` Daniel Hartwig
2013-02-19  7:33 ` Nala Ginrut

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/guile/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1361077395.2535.39.camel@Renee-desktop.suse \
    --to=nalaginrut@gmail.com \
    --cc=guile-devel@gnu.org \
    --cc=guile-user@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).