Files
native-mdns/README.md
T

65 lines
1.2 KiB
Markdown
Raw Normal View History

2025-09-29 02:02:44 +08:00
# native-mdns
A Kotlin multiplatform library for mdns announcer(mdns server), only broadcast is supported,
2025-09-29 06:30:39 +08:00
it depends on ktor-network.
2025-09-29 02:02:44 +08:00
2025-09-29 06:30:39 +08:00
Also, nmdns can be compiled to shared/static lib for other language usage, see [build.gradle.kts](build.gradle.kts)
2025-09-29 02:02:44 +08:00
2025-09-29 02:05:22 +08:00
Supported platforms:
1. windows64(mingwx64)
2. linuxX64
3. linuxArm64
4. macosArm64
5. jvm(11 or later)
2025-09-29 06:30:39 +08:00
Supported srv type
1. A
2. PTR
> AAAA is not supported
2025-09-29 02:05:22 +08:00
AirPlay2(_airplay._tcp.local.) is tested
# How to use
Add maven repository
```kotlin
repositories {
mavenCentral()
maven("https://repo.maven.rtast.cn/releases")
}
```
Add dependency
```kotlin
kotlin {
linuxX64()
// Add other platforms
sourceSets {
commonMain.dependencies {
2025-09-29 06:30:39 +08:00
implementation("cn.rtast.nmdns:native-mdns:0.0.2")
2025-09-29 02:05:22 +08:00
}
}
}
2025-09-29 02:07:43 +08:00
```
There is a simple airplay2 service
```kotlin
2025-09-29 06:30:39 +08:00
val service = registerService(
serviceType = "_airplay._tcp.local.",
serviceName = "AP@RTAST",
hostname = "rtakland.local.",
ipAddress = "192.168.10.104",
port = 7001,
bindAddress = "192.168.10.104",
mdnsPort = 5356,
)
while (true) {
service.broadcast()
delay(2000L) // or use cn.rtast.nmdns.sleep1(2) sleep 2 seconds
}
2025-09-29 02:05:22 +08:00
```