dhakira
Version, currently 0.3.011 versions
- 0.4.0latestMar 15, 2023
- 0.3.7not indexedFeb 12, 2024
- 0.3.6not indexedFeb 12, 2024
- 0.3.5not indexedFeb 12, 2024
- 0.3.3not indexedFeb 12, 2024
- 0.3.1not indexedFeb 12, 2024
- 0.3.0not indexedFeb 12, 2024
- 0.2.2not indexedFeb 12, 2024
- 0.2.1not indexedFeb 12, 2024
- 0.2.0not indexedFeb 12, 2024
- 0.1.0not indexedFeb 12, 2024
github.com/KalvadTech/dhakira
No description declared in shard.yml.
Nothing has been indexed for 0.3.0 yet. The tag is recorded, its shard.yml has not been read, so the manifest and dependency list below are empty because they are unknown rather than because they are absent.
Installation
# Add this to your shard.yml
dependencies:
dhakira:
github: KalvadTech/dhakira
version: ~> 0.3.0Then run:
shards installshard.yml
No shard.yml has been indexed for 0.3.0. You can read it on the repository.
Dependencies
Unknown: the shard.yml for this version has not been read yet.
README
This README is the one indexed from the repository at its latest ref, not from the tag for this version.
Dhakira
Dhakira is an opiniated in-memory web server in Crystal, with a special emphasis towards SPA hosting!
Explanation
For long time, we have been working with SPAs, and what were the solutions to deploy SPAs? NGiNX or Apache.
Even if both are great tools, for hosting only some basic websites, they were slow and not very easy to configure, especially if you want to embed them into some containers.
What we did is to rework what we wanted as a webserver:
- should be able to host "standard" websites and SPAs
- should be easy to configure
- should be very performant and load everything in-memory
Once we had our requirements, we started to discuss about it with some of Kalvad's Team member, and we came with a first implementation, in Crystal.
Crystal is like a compiled Ruby, backed by LLVM.
How does it work?
graph TD
A[Launch Dhakira] --> B(Check if ./dhakira_html folder exists)
B -->|No| Z[Error]
B -->|Yes| C(Check if we have some websites or spas configured)
C --> D[Does the folder ./dhakira_html/spas or ./dhakira_html/websites exists?]
D -->|Yes| G[Check every folder, load every file in memory, with the associated mime-type]
D -->|No| Z
G -->H[Launch Webserver]
Installation
Download the latest release on github, or compile it with shards build --static --no-debug --release --production -v
Usage
./dhakira -h
-b HOST, --bind HOST Host to bind (defaults to 0.0.0.0)
-p PORT, --port PORT Port to listen for connections (defaults to 3000)
-s, --ssl Enables SSL
--ssl-key-file FILE SSL key file
--ssl-cert-file FILE SSL certificate file
-h, --help Shows this help
Development
TODO: Write development instructions here
Contributing
- Fork it (https://github.com/your-github-user/dhakira/fork)
- Create your feature branch (
git checkout -b my-new-feature) - Commit your changes (
git commit -am 'Add some feature') - Push to the branch (
git push origin my-new-feature) - Create a new Pull Request
Contributors
- Loïc Tosser - creator and maintainer
Documentation
Built from the current release. The first visit to a release nobody has asked for starts its build.
Links
This release
- Version
0.3.0- Tagged
- Feb 12, 2024
- Commit
9e8aad5a8237- Indexed
- not yet
Dependents
No indexed shard depends on this one yet.
Repository
github.com/KalvadTech/dhakira
Metadata
- Created
- Aug 12, 2026
- Updated
- Aug 14, 2026
- Synced
- Aug 14, 2026
- Versions
- 11