speechmarkdown 0.4.2 → 0.4.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +77 -0
- package/package.json +2 -2
- package/speechmarkdown.darwin-arm64.node +0 -0
- package/speechmarkdown.darwin-x64.node +0 -0
- package/speechmarkdown.linux-arm64-gnu.node +0 -0
- package/speechmarkdown.linux-x64-gnu.node +0 -0
- package/speechmarkdown.linux-x64-musl.node +0 -0
- package/speechmarkdown.win32-arm64-msvc.node +0 -0
- package/speechmarkdown.win32-x64-msvc.node +0 -0
package/README.md
CHANGED
|
@@ -2,6 +2,32 @@
|
|
|
2
2
|
|
|
3
3
|
High-performance SpeechMarkdown parser written in Rust. Converts [SpeechMarkdown](https://speechmarkdown.com/) syntax to platform-specific SSML for Amazon Alexa, Google Assistant, Microsoft Azure, and more.
|
|
4
4
|
|
|
5
|
+
## Repository Structure
|
|
6
|
+
|
|
7
|
+
This repository contains the core Rust SpeechMarkdown parser with bindings for multiple languages:
|
|
8
|
+
|
|
9
|
+
```
|
|
10
|
+
speechmarkdown-rust/
|
|
11
|
+
├── src/ # Core Rust library (language-agnostic)
|
|
12
|
+
├── bindings/ # Language-specific bindings
|
|
13
|
+
│ ├── python/ # Python bindings via PyO3
|
|
14
|
+
│ ├── nodejs/ # Node.js bindings via napi-rs
|
|
15
|
+
│ ├── dotnet/ # .NET bindings via rust-cpp
|
|
16
|
+
│ └── swift/ # Swift bindings via C API + SPM
|
|
17
|
+
├── Package.swift # Swift Package Manager configuration (Swift-only)
|
|
18
|
+
├── build-swift-package.sh # Swift package build script (Swift-only)
|
|
19
|
+
└── Cargo.toml # Rust package configuration
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
**Important Notes for Non-Swift Users:**
|
|
23
|
+
|
|
24
|
+
- **Swift-specific files are ignored by other build systems**: `Package.swift`, `build-swift-package.sh`, and `swift-package-dist/` are only used by Swift Package Manager. They do not affect Rust, Python, Node.js, or .NET builds.
|
|
25
|
+
- **Core Rust library unchanged**: The `src/` directory and `Cargo.toml` remain the single source of truth for the SpeechMarkdown parser across all languages.
|
|
26
|
+
- **Isolated language bindings**: Each language in `bindings/` has its own build configuration and doesn't interfere with others.
|
|
27
|
+
|
|
28
|
+
**For Rust/.NET/Python/Node.js Developers:**
|
|
29
|
+
You can safely ignore Swift-specific files. Your respective package managers (Cargo, NuGet, PyPI, npm) only use the core library and your language's binding directory.
|
|
30
|
+
|
|
5
31
|
## Install
|
|
6
32
|
|
|
7
33
|
| Language | Package | Install |
|
|
@@ -195,6 +221,10 @@ const char* err = speechmarkdown_get_error();
|
|
|
195
221
|
|
|
196
222
|
## Building from Source
|
|
197
223
|
|
|
224
|
+
### Core Rust Library
|
|
225
|
+
|
|
226
|
+
The core Rust parser is built with:
|
|
227
|
+
|
|
198
228
|
```bash
|
|
199
229
|
cargo build --release
|
|
200
230
|
```
|
|
@@ -204,6 +234,53 @@ This produces:
|
|
|
204
234
|
- **macOS**: `target/release/libspeechmarkdown_rust.dylib`
|
|
205
235
|
- **Linux**: `target/release/libspeechmarkdown_rust.so`
|
|
206
236
|
|
|
237
|
+
### Language-Specific Builds
|
|
238
|
+
|
|
239
|
+
Each language binding has its own build process:
|
|
240
|
+
|
|
241
|
+
**Python:**
|
|
242
|
+
```bash
|
|
243
|
+
cd bindings/python
|
|
244
|
+
maturin develop
|
|
245
|
+
# or for release: maturin build --release
|
|
246
|
+
```
|
|
247
|
+
|
|
248
|
+
**Node.js:**
|
|
249
|
+
```bash
|
|
250
|
+
cd bindings/nodejs
|
|
251
|
+
npm install
|
|
252
|
+
npm run build
|
|
253
|
+
```
|
|
254
|
+
|
|
255
|
+
**.NET:**
|
|
256
|
+
```bash
|
|
257
|
+
cd bindings/dotnet
|
|
258
|
+
dotnet build
|
|
259
|
+
```
|
|
260
|
+
|
|
261
|
+
**Swift:**
|
|
262
|
+
```bash
|
|
263
|
+
# Uses pre-built XCFramework from releases
|
|
264
|
+
# Or build from source:
|
|
265
|
+
./build-swift-package.sh
|
|
266
|
+
```
|
|
267
|
+
|
|
268
|
+
## Development Workflow
|
|
269
|
+
|
|
270
|
+
The repository follows a unified development model where all language bindings share the same core Rust parser:
|
|
271
|
+
|
|
272
|
+
1. **Core changes**: Modify `src/` for parser logic changes
|
|
273
|
+
2. **Language changes**: Modify `bindings/<language>/` for binding-specific changes
|
|
274
|
+
3. **Testing**: Each language has its own test suite
|
|
275
|
+
4. **Releases**: All packages are released together with version synchronization
|
|
276
|
+
|
|
277
|
+
**For Contributors:**
|
|
278
|
+
- Rust developers: Work in `src/` and test with `cargo test`
|
|
279
|
+
- Python developers: Work in `bindings/python/` and test with `pytest`
|
|
280
|
+
- Node.js developers: Work in `bindings/nodejs/` and test with `npm test`
|
|
281
|
+
- .NET developers: Work in `bindings/dotnet/` and test with `dotnet test`
|
|
282
|
+
- Swift developers: Work in `bindings/swift/` and use SPM for testing
|
|
283
|
+
|
|
207
284
|
## License
|
|
208
285
|
|
|
209
286
|
MIT
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "speechmarkdown",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.4",
|
|
4
4
|
"description": "SpeechMarkdown parser - convert SpeechMarkdown to SSML",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"types": "index.d.ts",
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
"build:debug": "napi build --platform",
|
|
11
11
|
"prepublishOnly": "napi prepublish -t npm",
|
|
12
12
|
"test": "node test.js",
|
|
13
|
-
"version": "0.4.
|
|
13
|
+
"version": "0.4.4"
|
|
14
14
|
},
|
|
15
15
|
"keywords": [
|
|
16
16
|
"speech",
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|