Kiit ( Formerly Slate Kit ) is a modular Kotlin framework to build Server and Android apps.
Kiit is a Kotlin framework, designed to be a simple, light-weight, modular set of libraries and tools to build Apps, APIs, CLIs, Jobs, Mobile Apps. It is targetd for Start-ups, Personal projects, Mobile Apps, and SMBs ( small-medium sized businesses ). These libraries can be used for both Server and Android and there are modules for the server that abstract infrastructure ( Queues, Files, SMS, Emails, Alerts ) with integrations for AWS ( SQS, S3 ), Twilio ( SMS ), SendGrid ( Email ), Slack ( Alerts ) and more. Multi-platform support is planned as a future state.
num | type | link |
---|---|---|
1 | Simple | Easy to use, light, modular, 100% Kotlin (alternative to Spring Framework) |
2 | Projects | More than just for APIs, use it for Console apps, Jobs, CLIs. |
3 | Usage | Start-Ups, Personal, Mobile Apps, SMB (small-mid sized business) |
4 | Full-Stack | Usable on both Server and Android ( due to being simple/light-weight) |
5 | Multiplatform | Kotlin Multi-Platform planned for the future for Javascript, Native, iOS, etc |
6 | Modular | Designed as a set of libraries rather than a typical "framework" |
7 | Tools | CLI tools to quickly create new Apps, CLIs, API, Jobs projects |
8 | Cloud | Partial Cloud Provider abstractions for ( Queues, Files, Databases, etc ) |
9 | Defaults | Sensible default implementations, currently support AWS |
You can quickly get started on Mac OS using the Homebrew installer and create projects using the Kiit CLI. Refer to https://www.slatekit.com/start/generators/ for more info.
brew tap slatekit/kiit
# NOTE: Install may take a long time on Mac (Catalina) due to issues noted below
brew install kiit
kiit new app -name="MyApp1" -package="company1.apps"
kiit new api -name="MyAPI1" -package="company1.apis"
kiit new job -name="MyJob1" -package="company1.jobs"
kiit new env -name="MyApp2" -package="company1.apps"
kiit new cli -name="MyCLI1" -package="company1.apps"
- Slow HomeBrew post install
- The install may be very slow with MacOS Catalina
- Ensure security -> privacy -> full disk access -> iterm2 ( of what ever terminal you use )
You can set up gradle using the example below. You can use as few or as many slatekit modules as you need. See https://github.com/orgs/slatekit/packages?repo_name=slatekit for latest versions
repositories {
jcenter()
mavenCentral()
maven {
url "https://maven.pkg.github.com/slatekit/kiit"
// Your GitHub user name + personal access token
credentials {
username = System.getenv('GITHUB_PACKAGES_INSTALL_ACTOR')
password = System.getenv('GITHUB_PACKAGES_INSTALL_TOKEN')
}
}
}
dependencies {
// Use the results module: Result<T,E> to model successes/failures with optional status codes
compile 'dev.kiit:kiit-results:2.12.0'
// ... Other packages here
}
Some important links / pages for more info.
num | type | link |
---|---|---|
1 | website | www.kiit.dev |
2 | start | www.kiit.dev/start |
3 | modules | https://www.kiit.dev/arch/overview/ |
4 | releases | https://github.com/slatekit/kiit/releases |
5 | packages | https://github.com/orgs/slatekit/packages?repo_name=kit |
6 | issues | https://github.com/slatekit/kiit/issues |
7 | discuss | https://github.com/slatekit/kiit/discussions |
8 | license | http://www.kiit.dev/more/license |
9 | utilities | http://www.kiit.dev/utils/overview |
10 | standards | http://www.kiit.dev/more/standards |
These are the vendors and tools we currently use to build and maintain Kiit
Name | Type | Notes |
---|---|---|
IDE | Kotlin/Java IDE. Every aspect of IntelliJ IDEA has been designed to maximize developer productivity. Together, intelligent coding assistance and ergonomic design make development not only productive but also enjoyable. | |
Profiler | YourKit supports open source projects with innovative and intelligent tools for monitoring and profiling Java and .NET applications. YourKit is the creator of YourKit Java Profiler | |
HTTP Server | Ktor is an asynchronous framework for creating microservices, web applications, and more. It’s fun, free, and open source. |
Kiit contains many useful architecture components, utilities and applications features. Many of the modules are organized into logical groups and the entire design can be visualized in this diagram
Here are some of the main ones:
docs | source | desc |
---|---|---|
Foundations | -- | Used by most modules |
results | src | Modeling of Successes/Failures |
common | src | Utility Components |
context | src | Stores Common Dependencies |
actors | src | Micro Actor Library |
Apps | -- | Runnable apps/Services |
app | src | Runnable App Template |
cli | src | Command Line Interface |
apis | src | RPC-like Web APIs |
jobs | src | Pausable jobs on persistent queues |
Infrastructure | -- | Infrastructure components |
core | src | Infrastructure Abstractions(Files, Queues) |
cache | src | Caching library |
notifications | src | Email, SMS, Slack, Push |
Data | -- | Database modules |
db | src | Easy database operations over JDBC |
data | src | Repository pattern for data persistence |
entities | src | Light-weight Data-Mapper for models |
Providers | -- | 3rd Party Integrations |
aws | src | AWS S3, SQS provider files/queues |
logback | src | Logback logging provider |
datadog | src | DataDog metrics provider |
- Kotlin Flow integration where applicable
- Use of newer Kotlin features
- Kotlin Multi-Platform
- Improved templates, Code Generators
- OpenAPI integrations
- author: Kishore Reddy
- website: www.kiit.dev
- company: www.codehelix.co
- email: kishore codehelix.co
- Support Kiit by clicking the ⭐ button on the upper right of this page. ✌️
- Contribute to continued development via Sponsorship ( being set up soon )