---
title: "Discussion on \"yasbd-lib v1.0.0: how beta finally ended\" | Hashnode"
description: "Discussion on \"yasbd-lib v1.0.0: how beta finally ended\". yasbd-lib v1.0.0 exits beta, locking its 39 core languages, dropping heavy dependencies, and adding stable APIs and custom hooks."
url: "https://hashnode.com/posts/yasbd-lib-v1-0-0-how-beta-finally-ended/6ab1d79ed58281e7df7d0236"
---

[Feed](https://hashnode.com/feed) /

Discussion

# [yasbd-lib v1.0.0: how beta finally ended](https://yasbd-lib.hashnode.dev/yasbd-lib-v1-0-0-how-beta-finally-ended?utm_source=hashnode&utm_medium=feed)

yasbd-lib v1.0.0 exits beta, locking its 39 core languages, dropping heavy dependencies, and adding stable APIs and custom hooks.

Sep 22 · 16 min read · yasbd-lib.hashnode.dev  
Read the article

-   [#nlp](https://hashnode.com/tag/nlp)
-   [#sentence-segmentation](https://hashnode.com/tag/sentence-segmentation)
-   [#yasbd](https://hashnode.com/tag/yasbd)
-   [#natural-language-processing](https://hashnode.com/tag/natural-language-processing)
-   [#python](https://hashnode.com/tag/python)

## Written by

[Speed K](https://hashnode.com/@speedk)

@speedk

  
[View profile](https://hashnode.com/@speedk)

## Responses 6

Markdown supported · ⌘↵ to post

[Ahmet Özel](https://hashnode.com/@ahmetozel)

[Oct 9](https://hashnode.com/posts/yasbd-lib-v1-0-0-how-beta-finally-ended/6ab1d79ed58281e7df7d0236/comment/6ac88f33909fa27d919c1c6e)

The leading-blank-line offset fix highlights a contract that becomes important when cleaning is enabled. Normalizing CRLF, unescaping HTML entities, and rejoining hyphenated lines can all change character positions. A boundary can be correct in cleaned text while pointing to the wrong place in the original document.

I would make the coordinate space explicit for detect() and for hook boundaries, and preserve an offset map if callers need to annotate the original source. A round-trip test using leading blanks, CRLF, and an entity before the first boundary would expose that distinction. This matters especially for PDF or OCR consumers that attach annotations using the returned offsets.

[Ahmet Özel](https://hashnode.com/@ahmetozel)

[Oct 11](https://hashnode.com/posts/yasbd-lib-v1-0-0-how-beta-finally-ended/6ab1d79ed58281e7df7d0236/comment/6ac88f33909fa27d919c1c6e#reply-6acb5808eced1445a542f708)

Keeping the map in an example preserves the stable segmentation API while making its coordinate contract inspectable. The explicit unlocatable sentinel is useful, provided consumers never pass negative offsets straight into slicing or annotation code.

I would give that example a small test with repeated sentence text and cleaning that removes characters, so mapping cannot silently choose the first matching occurrence. Comparing different stream chunk boundaries against whole-input processing would also catch local-to-absolute offset mistakes without committing the core API to maintaining those maps.

[Speed K](https://hashnode.com/@speedk)

[Oct 12](https://hashnode.com/posts/yasbd-lib-v1-0-0-how-beta-finally-ended/6ab1d79ed58281e7df7d0236/comment/6ac88f33909fa27d919c1c6e#reply-6acd59a376e9bc8386658efe)

I haven't stress test the example yet. If you get some free time, you may test it and raise issue or Pr directly to the repo.

[Ahmet Özel](https://hashnode.com/@ahmetozel)

[Oct 15](https://hashnode.com/posts/yasbd-lib-v1-0-0-how-beta-finally-ended/6ab1d79ed58281e7df7d0236/comment/6ac88f33909fa27d919c1c6e#reply-6ad13d241ea769204fa56324)

I am not able to take on individual reviews, but a focused regression can make the example easier to assess without a broad stress test. Use two identical sentences with different source offsets, remove a hyphenated line break before the second, and verify both map to the intended occurrences.

Repeat that input with several stream chunk boundaries and compare the spans with whole-input processing. Explicitly assert that an unlocatable result remains the sentinel and never becomes a negative-index slice into the source.
