8000 Releases · dominion525/jetdb · GitHub
[go: up one dir, main page]

Skip to content

Releases

v0.4.0

Choose a tag to compare

@github-actions github-actions released this 27 Oct 08:26
9f949b6

What's Changed

  • Allow to read from i 8000 n-memory data sources by @semenenkov in #13
  • Restore the thread and unwind safety PageReader lost with in-memory sources by @dominion525 in #17
  • Check the browser Wasm build and the WASI test run in CI and on release by @dominion525 in #18
  • Run tests on the browser Wasm target by @dominion525 in #19
  • Document that the library runs on WebAssembly by @dominion525 in #20
  • Raise the MSRV to 1.86 and update quick-xml to 0.42 by @dominion525 in #21
  • Fix swapped precision and scale offsets for Jet4 numeric columns by @dominion525 in #22
  • Detect the primary key by index_type instead of mistaking hidden indexes for it by @dominion525 in #23
  • Read calculated field values by @dominion525 in #24
  • Read macros from Access 97 through Microsoft 365 by @dominion525 in #25
  • Read MSysObjects.Type as the object types real databases store by @dominion525 in #26
  • Return columns in Design View order by @dominion525 in #27
  • Keep exports of system tables from coming out as empty rows by @dominion525 in #28
  • Keep complex columns from appearing in DDL as auto-increment columns by @dominion525 in #29
  • Add the base of jetdb-wasm, an npm package for using jetdb from JavaScript by @dominion525 in #30
  • Give the jetdb-wasm package exact TypeScript types and check them by @dominion525 in #31
  • Test the jetdb-wasm web build in real browsers in CI by @dominion525 in #32
  • Add BigInt test data and write BigInt as BIGINT in Access DDL by @dominion525 in #33
  • Read timestamps before 1899-12-30 with the time of day Access shows by @dominion525 in #35
  • Read the columns, indexes and rows of a table from jetdb-wasm by @dominion525 in #34
  • Expect the time of day Access shows for a timestamp before 1899-12-30 by @dominion525 in #36
  • Show and write calculated columns with the type of their result in jetdb schema by @dominion525 in #37
  • Give the errors of jetdb-wasm a code to tell their kinds apart by @dominion525 in #38
  • Keep the rules the CLI and jetdb-wasm share in the library by @dominion525 in #40
  • Keep the jump of a Jet3 row whose variable data ends on a 256-byte boundary by @dominion525 in #41
  • Make jetdb-wasm report panics and read the catalog once by @dominion525 in #42
  • Read relationships and write DDL in jetdb-wasm by @dominion525 in #43
  • Read saved queries in jetdb-wasm, and check string arguments by @dominion525 in #44
  • Read object properties in jetdb-wasm, and tell apart objects that share a name by @dominion525 in #45
  • Keep a property chunk length from overflowing a 32-bit usize by @dominion525 in #46
  • Do not give the SQL of a query that may have lost rows of MSysQueries by @dominion525 in #47
  • Keep a Jet3 row whose null mask is longer than the row from panicking by @dominion525 in #48
  • Keep a broken index count of a table definition from panicking by @dominion525 in #49
  • Keep a broken scale of a calculated Decimal value from panicking by @dominion525 in #50
  • Tell AutoNumber columns by their type as well as their flags by @dominion525 in #51
  • Make the GUID columns of the MySQL DDL hold the braced values by @dominion525 in #52
  • Write GUID AutoNumber columns as GUID columns in DDL by @dominion525 in #53
  • Make only a sole AutoNumber primary key the SQLite primary key by @dominion525 in #54
  • Prefix index names with their table in SQLite and PostgreSQL DDL by @dominion525 in #55
  • Size Text columns in DDL in characters rather than bytes by @dominion525 in #56
  • Give a MySQL AUTO_INCREMENT column that does not begin the primary key an index by @dominion525 in #57
  • Open bytes made in another realm in jetdb-wasm by @dominion525 in #58
  • Do not open a file without the signature of an Access database by @dominion525 in #59
  • Give the names of the columns with the rows in jetdb-wasm by @dominion525 in #60
  • Do not make a relationship without referential integrity a foreign key in DDL by @dominion525 in #61
  • Show the size of a Text column in characters, as Access does by @dominion525 in #62
  • Read MSysObjects once where the catalog is already read by @dominion525 in #63
  • Read the definitions of saved queries once in jetdb-wasm by @dominion525 in #64
  • Use the same function as the DDL for the types of calculated columns in columns of jetdb-wasm by @dominion525 in #65
  • Keep a sing 8000 le list of the object types in the library by @dominion525 in #66
  • Leave out the relationships of hidden linked tables in relationships of jetdb-wasm by @dominion525 in #69
  • Pass the values of properties to JavaScript without copying them in jetdb-wasm by @dominion525 in #67
  • Name the type of the object in the heading of its properties in jetdb prop by @dominion525 in #68
  • Read the properties of an object listed twice in the catalog with the same type by @dominion525 in #70
  • Read the properties of an object of a type jetdb does not know by its name in properties of jetdb-wasm by @dominion525 in #71
  • Check the forms and reports jetdb reads against the SaveAsText output of Access by @dominion525 in #72
  • Check that VBA modules with Japanese names and source are read correctly by @dominion525 in #73
  • Describe how far public macros confirm the names of macro argument values by @dominion525 in #74
  • Name more form and report properties, checked against the SaveAsText output of Access by @dominion525 in #75
  • Read the VBA modules and their source in jetdb-wasm by @dominion525 in #76
  • Read the forms and reports and their designs in jetdb-wasm by @dominion525 in #77
  • Read the named, embedded and data macros in jetdb-wasm by @dominion525 in #78
  • Add the sample database whose command output the jetdb site shows by @dominion525 in #79
  • Return the 32-bit values of form properties as numbers in jetdb-wasm by @dominion525 in #80
  • Leave out the macros Access makes for itself from macros of jetdb-wasm by default by @dominion525 in #81
  • Document how jetdb-wasm treats Access 97 files and when macro fields are null or empty by @dominion525 in #83
  • Give form properties and control types their numbers in jetdb-wasm by @dominion525 in #82
  • Choose between a form and a report of the same name by @dominion525 in #84
  • Tell class modules from the modules of forms and reports in VBA projects by @dominion525 in #85
  • Read the storage of forms, macros and VBA once by @dominion525 in #86
  • Check the length of form property data without overflowing on 32-bit targets by @dominion525 in #87
  • Write each data macro of a DataMacros document once by @dominion525 in #88
  • Read the CDATA sections of macro XML as the text of their elements by @dominion525 in #89
  • Read the values of complex columns: multiple values, attachments and version history by @dominion525 in #90
  • Read the rows of a table one at a time, also in jetdb export and jetdb-wasm by @dominion525 in #91
  • Reword the source notes in the form and query docs by @dominion525 in #92
  • Read the streams of f...
Read more

v0.3.3

Choose a tag to compare

@github-actions github-actions released this 13 Sep 14:14
102a6bb

What's Changed

Full Changelog: v0.3.2...v0.3.3

v0.3.2

Choose a tag to compare

@github-actions github-actions released this 20 Jun 16:03
28253cc

Bug Fixes (jetdb library)

  • Stop the Jet4 variable-offset table scan before underflow, using checked_sub on the subtraction itself instead of wrapping_sub (#9 by @Else00)
  • Preserve start == end variable values as non-null empty Text / Binary / Memo / Ole instead of converting them to Value::Null (#9 by @Else00)
  • Reject malformed DateTimeExtended payloads (wrong length, bad separator/marker bytes, non-digit characters, out-of-range seconds/nanoseconds) instead of silently returning an epoch-like date (#9 by @Else00)
  • Carry rounded timestamps past 23:59:59 to the next day at 00:00:00 instead of producing hour=24 (#9 by @Else00)

Tests

  • Add regression test for crack_row_jet4 var-offset overflow, cherry-picked from #8 by @Bradyok

CLI changes (jetdb-cli)

  • --help-skill now prints installation instructions for the Claude Code Skill, which has been moved to the dedicated agent-skills repository
  • --export-skill alias removed
  • SKILL.md / SKILL.ja.md removed from this repository

Acknowledgments

Real-world bug reports and PRs from @Else00 (using jetdb in a personal desktop application) and @Bradyok (using jetdb to process Hy-Tek Meet Manager 8 .mdb exports). The kind of feedback that's only possible from actual users — thank you both.

Full Changelog: v0.3.1...v0.3.2

v0.3.1

Choose a tag to compare

@github-actions github-actions released this 12 Mar 16:59
995bbcb

Bug Fixes

  • Fix form controls output for control names containing parentheses (e.g. その他(社内業務))
  • Exclude internal metadata entries (type_code 0x1EFF) from form controls output

Documentation

  • Update form-design specification with corrected TypeInfo entry format and 0x1EFF findings

Full Changelog: v0.3.0...v0.3.1

v0.3.0

Choose a tag to compare

@github-actions github-actions released this 12 Mar 15:04
f47aaa8

New Features

  • form subcommand — Read form/report design information from Access databases
    • form list — List forms and reports (--forms-only / --reports-only filters)
    • form controls — List control names, type names, and indices
    • form props — Display form-level and per-control properties
    • form dump — Dump raw binary streams (Blob / TypeInfo / PropData)
  • Blob binary parser — Extract properties such as RecordSource, ControlSource, Filter, and event handlers
  • TypeInfo parser — Parse control names and type codes (Shift-JIS support)
  • Human-readable control type names — Map type codes to names (Label, TextBox, CommandButton, etc.)

Bug Fixes

  • Fix queries not appearing in listing when ATTR_TYPE row is absent

Other Changes

  • Add form/report binary format specification (docs/form-design.md)
  • Improved test coverage (crypto, form, CLI)
  • Separate CLI test responsibilities (move functional tests to library)

v0.2.2 — AI agent skill file output

Choose a tag to compare

@github-actions github-actions released this 11 Mar 07:00

Added support for outputting a skill file that AI agents (Claude Code, Codex CLI, Gemini CLI, etc.) can use to operate jetdb effectively.

New Features

  • Add --help-skill flag (alias: --export-skill)
  • SKILL.md is embedded in the binary and can be registered as a skill:
mkdir -p ~/.claude/skills/jetdb-cli && jetdb --help-skill > ~/.claude/skills/jetdb-cli/SKILL.md
  • The skill file covers all 7 subcommands with usage examples, output samples, workflow patterns, encrypted DB handling, and error behavior

v0.2.1

Choose a tag to compare

@github-actions github-actions released this 19 Feb 04:52

Highlights

  • Password-protected .accdb files are now supported (--password flag / PageReader::open_with_password)
  • Encryption: Agile, RC4 CryptoAPI, Standard/NonStandard AES
  • New column type: DateTimeExtended (Access 2019, nanosecond precision)

Install / Upgrade

cargo install jetdb-cli

What's Changed

  • Add password-protected .accdb/.mdb file support by @dominion525 in #3
  • Add RC4 CryptoAPI / Standard AES decryption and DateTimeExtended support by @dominion525 in #4

Full Changelog: v0.1.1...v0.2.1

v0.1.1

Choose a tag to compare

@github-actions github-actions released this 16 Feb 12:26
c1a01af

jetdb v0.1.1

A pure Rust, read-only library and CLI for Microsoft Access databases (.mdb/.accdb). Supports Access 97 (Jet3) through Access 2019 (ACE17).

Full Changelog: https://github.com/dominion525/jetdb/commits/v0.1.1

0