speechmarkdown 0.4.3 → 0.4.5

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 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",
3
+ "version": "0.4.5",
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.3"
13
+ "version": "0.4.5"
14
14
  },
15
15
  "keywords": [
16
16
  "speech",
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file