- Notifications
You must be signed in to change notification settings - Fork320
An easy to use, scalable and secure web application framework for writing web APIs in C or Python. || This is a read-only mirror, please seehttps://kore.io/mail andhttps://kore.io/source for information on how to contribute via the mailing lists.
License
jorisvink/kore
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Kore (https://kore.io) is a web application platform for writing scalable,concurrent web based processes in C or Python.
It is built with a "secure by default" approach. It is fully privilegeseparated while using strong security features at the operating system levelsuch as seccomp, pledge, unveil and more.
Today Kore is used in a variety of applications ranging from high assurancecryptographic devices, machine-learning stacks and even in the aerospaceindustry.
From embedded platforms all the way to high performance servers.Kore scales.
- Supports SNI
- Supports HTTP/1.1
- Websocket support
- Privseps by default
- TLS enabled by default
- Optional background tasks
- Built-in parameter validation
- Optional asynchronous PostgreSQL support
- Optional support for page handlers in Python
- Reload private keys and certificates on-the-fly
- Automatic X509 certificates via ACME (with privsep)
- Private keys isolated in separate process (RSA and ECDSA)
- Default sane TLS ciphersuites (PFS in all major browsers)
- Modules can be reloaded on-the-fly, even while serving content
- Worker processes sandboxed on OpenBSD (pledge) and Linux (seccomp)
- Event driven (epoll/kqueue) architecture with per CPU worker processes
- Build your web application as a precompiled dynamic library or single binary
And lots more.
- Kore is licensed under the ISC license
Read thebenchmarks blog post.
- Linux
- OpenBSD
- FreeBSD
- MacOS
Kore only supports x64, arm and aarch64 architectures.
Clone this repository or get the latest release athttps://kore.io/releases/4.2.3.
Requirements
- openssl 1.1.1, libressl 3.x or openssl 3.
Requirement for asynchronous curl (optional)
- libcurl (7.64.0 or higher)
Requirements for background tasks (optional)
- pthreads
Requirements for pgsql (optional)
- libpq
Requirements for python (optional)
- Python 3.6+
Requirements for lua support (optional)
- Lua 5.4+
Normal compilation and installation:
$ cd kore$ make# make install
If you would like to build a specific flavor, you can enablethose by setting a shell environment variable before runningmake.
- LUA=1 (compiles in LUA support)
- ACME=1 (compiles in ACME support)
- CURL=1 (compiles in asynchronous curl support)
- TASKS=1 (compiles in task support)
- PGSQL=1 (compiles in pgsql support)
- DEBUG=1 (enables use of -d for debug)
- NOHTTP=1 (compiles Kore without HTTP support)
- NOOPT=1 (disable compiler optimizations)
- JSONRPC=1 (compiles in JSONRPC support)
- PYTHON=1 (compiles in the Python support)
- TLS_BACKEND=none (compiles Kore without any TLS backend)
Note that certain build flavors cannot be mixed together and you will justbe met with compilation errors.
You can find example applications underexamples/.
The examples contain a README file with instructions on howto build or use them.
patches@kore.io - Send patches here, preferably inline.
users@kore.io - Questions regarding kore.
If you want to signup to those mailing lists send an empty email tolistname+subscribe@kore.io
Other mailboxes (these arenot mailing lists):
security@kore.io - Mail this email if you think you found a security problem.
sponsor@kore.io - If your company would like to sponsor part of Kore development.
More information can be found onhttps://kore.io/
About
An easy to use, scalable and secure web application framework for writing web APIs in C or Python. || This is a read-only mirror, please seehttps://kore.io/mail andhttps://kore.io/source for information on how to contribute via the mailing lists.