A scalable webserver, a fast with small footprint programming language, a framework, a masterless multi-server document oriented with a SQL subset database engine (TinDB). It runs on FreeBSD, Linux, Windows and OS X, tested on x86, amd64 and ARM.
Concept is a simple javascript-like language, with a small difference: it is strict object-oriented. Also, all the code is compiled. Additionally it has a JIT compiler based on sljit. It is designed to be friendly and easy to use.
A simple console hello world app:
#!/usr/local/bin/concept class Main { Main() { echo "Hello world!"; } } The function keyword is optional.
The simplest form-based application it looks like this:
include Application.con include RForm.con include RLabel.con class HelloForm extends RForm { private var labelHello; HelloForm(Parent) { super(Parent); labelHello = new RLabel(this); labelHello.Caption = "Hello world!"; labelHello.Show(); } } class Main { Main() { try { var Application = new CApplication(new HelloForm(null)); Application.Init(); Application.Run(); Application.Done(); } catch (var Exception) { echo "Didn’t catch $Exception"; } } } The simplest async cgi application looks like this:
include async.con class app { app(req) { req.header("Content-Type", "text/html; charset=utf-8"); // req.usesession(); // req.session.data["x"] = "test"; // Using mustache templates: // req.template = "tpl/template.html"; // req.put([ // "title" => "Hello world!", // "content" => "Hello !" // ]); // or, no templates: req << "Hello world!"; } } A full HTTP2 asynchronous webserver, written in Concept with a websocket application model.
A rich framework, covering lots of protocols, controls, functions and classes.
TinDB is an asynchronous database engine written entirely in Concept. It features:
- Document-based objects stored in collections
- Indexes, including fulltext based on BM25 built-in support or Apache Lucy
- Stored procedures written in JavaScript(spidermonkey or duktape) or Concept
- Triggers
- Masterless replication in a ring configuration
A great thing about TinDB objects is that circular references are safe.
A webclient for websocket-driven extremely responsive, single-page web applications.
Lots of wrappers for various library (over 7000 functions) starting from libxml2 and libcurl to Sphinx and WebKit.