kore/README.md

97 lines
2.7 KiB
Markdown
Raw Normal View History

2014-03-02 18:16:32 +01:00
About
-----
2015-05-13 09:59:02 +02:00
[![Build Status](https://travis-ci.org/jorisvink/kore.svg?branch=master)](https://travis-ci.org/jorisvink/kore)
2014-11-07 09:14:53 +01:00
Kore (https://kore.io) is an easy to use web application framework for
writing scalable web APIs in C. Its main goals are security, scalability
and allowing rapid development and deployment of such APIs.
2013-05-01 21:36:00 +02:00
2014-11-07 09:14:53 +01:00
Because of this Kore is an ideal candidate for building robust, scalable and secure web things.
2013-05-01 21:36:00 +02:00
Features
2014-03-02 18:16:32 +01:00
--------
* Supports SNI
* Supports HTTP/1.1
2014-11-24 11:11:01 +01:00
* Websocket support
2016-08-01 09:41:12 +02:00
* Privseps by default
2017-06-28 10:20:14 +02:00
* TLS enabled by default
2014-06-30 10:11:45 +02:00
* Lightweight background tasks
2014-03-02 18:16:32 +01:00
* Built-in parameter validation
* Built-in asynchronous PostgreSQL support
* Built-in support for page handlers in Python
2016-08-01 09:41:12 +02:00
* Private keys isolated in separate process (RSA and ECDSA)
2014-11-07 17:19:41 +01:00
* Default sane TLS ciphersuites (PFS in all major browsers)
2014-03-02 18:16:32 +01:00
* Modules can be reloaded on-the-fly, even while serving content
2017-02-06 23:38:21 +01:00
* Event driven (epoll/kqueue) architecture with per CPU worker processes
2016-08-01 09:41:12 +02:00
* Build your web application as a precompiled dynamic library or single binary
2013-06-05 14:10:29 +02:00
2013-06-24 12:05:22 +02:00
License
2014-03-02 18:16:32 +01:00
-------
* Kore is licensed under the ISC license
2013-06-24 12:05:22 +02:00
2016-08-01 15:03:22 +02:00
Documentation
--------------
[Read the documentation](https://jorisvink.gitbooks.io/kore-doc/content/)
2013-07-28 19:25:46 +02:00
Platforms supported
2014-03-02 18:16:32 +01:00
-------------------
* Linux
* OpenBSD
* FreeBSD
* OSX
2014-07-03 22:40:12 +02:00
Building Kore
-------------
2016-08-01 15:12:30 +02:00
Grab the [latest release](https://github.com/jorisvink/kore/releases/tag/2.0.0-release) tarball or clone the repository.
2014-07-03 22:40:12 +02:00
Requirements
2017-05-22 14:36:55 +02:00
* openssl (1.0.2k or 1.1.0e)
(note: this requirement drops away when building with NOTLS=1 NOHTTP=1)
2017-05-22 14:36:55 +02:00
(note: libressl should work as a replacement)
2014-07-03 22:40:12 +02:00
Requirements for background tasks (optional)
2014-07-03 22:40:12 +02:00
* pthreads
Requirements for pgsql (optional)
2014-07-03 22:40:12 +02:00
* libpq
Requirements for python (optional)
2017-03-30 09:40:13 +02:00
* Python 3.6+
2014-07-03 22:40:12 +02:00
Normal compilation and installation:
```
2017-03-06 14:28:06 +01:00
$ cd kore
$ make
2014-07-03 22:40:12 +02:00
# make install
```
If you would like to build a specific flavor, you can enable
those by setting a shell environment variable before running **_make_**.
* TASKS=1 (compiles in task support)
* PGSQL=1 (compiles in pgsql support)
* DEBUG=1 (enables use of -d for debug)
2015-11-05 09:18:14 +01:00
* NOTLS=1 (compiles Kore without TLS)
* NOHTTP=1 (compiles Kore without HTTP support)
2016-02-01 22:19:16 +01:00
* NOOPT=1 (disable compiler optimizations)
2016-08-01 09:41:12 +02:00
* JSONRPC=1 (compiles in JSONRPC support)
* PYTHON=1 (compiles in the Python support)
2014-07-03 22:40:12 +02:00
2017-02-07 23:18:05 +01:00
Note that certain build flavors cannot be mixed together and you will just
be met with compilation errors.
2016-08-01 09:41:12 +02:00
Example applications
2014-07-03 22:40:12 +02:00
-----------------
2016-08-01 09:41:12 +02:00
You can find example applications under **_examples/_**.
2014-07-03 22:40:12 +02:00
2014-08-03 21:44:14 +02:00
The examples contain a README file with instructions on how
to build or use them.
2014-07-03 22:40:12 +02:00
2014-03-02 18:16:32 +01:00
Bugs, contributions and more
----------------------------
If you run into any bugs, have suggestions or patches please
contact me at joris@coders.se.
2013-06-05 14:10:29 +02:00
More information can be found on https://kore.io/