aleksa alternatives and similar libraries
Based on the "Misc" category.
Alternatively, view aleksa alternatives based on common mentions on social networks and blogs.
-
jclasslib
jclasslib bytecode editor is a tool that visualizes all aspects of compiled Java class files and the contained bytecode. -
kotlin-logging
Lightweight Multiplatform logging framework for Kotlin. A convenient and performant logging facade. -
kotlin-telegram-bot
๐ค A wrapper for the Telegram Bot API written in Kotlin -
kotlinx.atomicfu
The idiomatic way to use atomic operations in Kotlin -
tinylog
tinylog is a lightweight logging framework for Java, Kotlin, Scala, and Android -
lingua
The most accurate natural language detection library for Java and the JVM, suitable for long and short text alike -
Kotlift
Kotlift is the first source-to-source language transpiler from Kotlin to Swift -
kotlinx.reflect.lite
Lightweight library allowing to introspect basic stuff about Kotlin symbols -
Humanizer.jvm
Humanizer.jvm meets all your jvm needs for manipulating and displaying strings, enums, dates, times, timespans, numbers and quantities. -
actions-on-google-kotlin
Unofficial Actions on Google SDK for Kotlin and Java -
klutter
A mix of random small libraries for Kotlin, the smallest reside here until big enough for their own repository. -
solr-undertow
Solr / SolrCloud running in high performance server - tiny, fast startup, simple to configure, easy deployment without an application server. -
kassava
This library provides some useful kotlin extension functions for implementing toString(), hashCode() and equals() without all of the boilerplate. -
SimpleDNN
SimpleDNN is a machine learning lightweight open-source library written in Kotlin designed to support relevant neural network architectures in natural language processing tasks -
units-of-measure
Type-safe dimensional analysis and unit conversion in Kotlin. -
kotlin-futures
A collections of extension functions to make the JVM Future, CompletableFuture, ListenableFuture API more functional and Kotlin like. -
TLSLibrary
Simple TlsLibrary written in Kotlin - Provides DSL for creating TLS connections -
scientist
A kotlin library for refactoring code. Port of GitHub's scientist. -
kasechange
๐ซ๐๐ข๐ ฟ Multiplatform Kotlin library to convert strings between various case formats including Camel Case, Snake Case, Pascal Case and Kebab Case -
kjob
A lightweight coroutine based persistent job/cron scheduler written in Kotlin -
PrimeCalendar
PrimeCalendar provides all of the java.util.Calendar functionalities for Persian, Hijri, and ... dates. It is also possible to convert dates to each other. -
kotlin-pluralizer
:sunny: Kotlin extension to pluralize and singularize strings -
kformula
Mathematical expression engine written in Kotlin, running on JVM. -
kase-format
Multiplatform kotlin string case conversion and detection library.
Appwrite - The Open Source Firebase alternative introduces iOS support
* Code Quality Rankings and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest.
Do you think we are missing an alternative of aleksa or a related project?
README
Aleksa
Aleksa is a small framework for writing Alexa Skills in Kotlin.
Warning
This framework uses an old version of the Alexa SDK - skills built with it won't work with Alexa anymore.
Usage
Maven
<dependency>
<groupId>de.mkammerer.aleksa</groupId>
<artifactId>aleksa</artifactId>
<version>1.2</version>
</dependency>
Gradle
compile group: 'de.mkammerer.aleksa', name: 'aleksa', version: '1.2'
Features
- Embedded Jetty server
- Configurable via code or commandline flags
- Supports hosting multiple skills in one application
- Convenience functions for plaintext responses, SSML, repromts, slots, sessions and more
- Dev mode which simplifies skill testing while development
- TLS
- Metrics
Example
Speechlet implementation:
// Inherit from SpeechletV2Base, it implements SpeechletV2 and implements optional methods with empty bodies
class HelloWorldSpeechlet : SpeechletV2Base() {
override fun onIntent(requestEnvelope: SpeechletRequestEnvelope<IntentRequest>): SpeechletResponse {
val intent = requestEnvelope.request.intent
return when (intent.name) {
// use the tell function to create a tell response
"HelloWorldIntent" -> tell("Hello world")
// The BuiltInIntents object contains the Alexa built-in intents
BuiltInIntents.CANCEL, BuiltInIntents.STOP -> tell("Good bye")
// use the ask function to create an ask response
else -> ask("What do you want to do?")
}
}
override fun onLaunch(requestEnvelope: SpeechletRequestEnvelope<LaunchRequest>): SpeechletResponse {
return ask("Hello world. What do you want to do?")
}
}
Application:
// Start with --help to see available commandline options
fun main(args: Array<String>) {
// Create your speechlet
val speechlet = HelloWorldSpeechlet()
// Add the speechlet to Aleksa
Aleksa.addSpeechlet(path = "/helloworld", applicationId = "[Your skill id]", speechlet = speechlet)
// Start Aleksa with the commandline parameters of your application
Aleksa.start(args)
}
Run it with --interface 127.0.0.1 --port 8080 --dev
. Now you can test the
skill with curl or some other tool at the url http://127.0.0.1:8080/helloworld
.
If you don't specify any commandline arguments, it binds to all interfaces on port 8080 and without dev mode.
The dev mode disables request signature checking, timestamp checking and application id verification. It also shows some
information on /
to ease debugging infrastructure problems (reverse proxies, etc.).
If you want metrics (statistics on how often your skills are executed), add --metrics
and check the /metrics
endpoint.
For more examples see the [examples](examples) directory.
Commandline parameters
-d,--dev Enable development mode
-h,--help Prints help
-i,--interface <arg> Interface to bind to
-ka,--key-alias <arg> Key alias. If not set, a key will be
automatically selected
-kpw,--key-password <arg> Key password. If not set, the keystore
password will be used
-ks,--keystore <arg> Location to the keystore
-kspw,--keystore-password <arg> Keystore password
-m,--metrics Enable metrics
-p,--port <arg> Port to bind to
Documentation
- [Functions](docs/functions.md)
- [Constants](docs/constants.md)
License
[LGPLv3](LICENSE)
Contributing
See [contributing guidelines](docs/contributing.md).
Maintainer
Moritz Kammerer (phXql)
*Note that all licence references and agreements mentioned in the aleksa README section above
are relevant to that project's source code only.