opensc 0.19.0-beta.1

Deimos-like binding to libopensc (reduced extend required by external modules [driver/SecureMessaging])

To use this package, run the following command in your project's root directory:

Build state

Build Status Build status


D language: Deimos-like binding to headers of, supporting the current 2 last/rolling OpenSC releases (i.e. version OpenSC-0.19.0, released Sept. 13, 2018, and the previous version 0.18.0, released May 16, 2018.

The OpenSC framework allows for providing e.g. a Smart Card Driver (and/or Secure Messaging/PKCS#15 module) as external shared object/DLL(s), if opensc.conf is configured accordingly.
This binding allows to implement in the D programming language.

category: Development Library | D language binding | Deimos header only binding (dub configuration "deimos")
category: Development Library | Development support library (with the difference to "deimos", that it must be compiled to make use of some additional toString methods; dub configuration "toString")

Not all OpenSC header content is covered, but what is required/useful for external modules and at least what is accessible from

There are a few general extensions/deviations, e.g. some enums are typed in the D binding in order to enable final switch usage, there are a few templates added like FreeEnumMembers in types.d, the templated enum log! in log.d (, a few template functions replaced the #defined-functions). Thus at it's heart it is no pure deimos binding any more but very close to it and still doesn't require compilation in dub configuration "deimos".

There is a tight dependency on how OpenSC's libopensc binary was build, thus reading info/options is recommended !

There are multiple reasons why code using this binding has to tell at compile time, to which exact libopensc binary version it's going to be linked/call at runtime. The version issue is managed by Dlang version identifier OPENSCVERSIONLATEST, that has to be removed from dub.json, if not linking against the latest
More about OPENSCVERSIONLATEST and other version identifiers in info/options, but this info ahead:
v0.15.7 up to v0.15.13: OPENSCVERSIONLATEST refers to OpenSC release v0.16.0, the only other one usable (omitting OPENSCVERSIONLATEST) is opensc v0.15.0.
v0.15.14 up to v0.15.16: OPENSCVERSIONLATEST refers to OpenSC release v0.17.0,
v0.18.0: OPENSCVERSIONLATEST refers to OpenSC release v0.18.0.
v0.19.0: OPENSCVERSIONLATEST refers to OpenSC release v0.19.0.
Also, file C/releaseversion states, what is OPENSCVERSION_LATEST refering to, the OpenSC release, where the headers came from to be "translated".

The operating system support is limited to those OS I have/know and can test (64 bit CPU: Linux/Windows), but may work for others too.

Last but not least my curiosity: In consideration of the fact, that this is a very specialized binding topic useful only for implementation of a driver etc., I had quite a lot of downloads via dub so far. Are You all happy, or have suggestions for enhancements? What are You doing with this binding? I didn't get any feedback/PR/issue so far; I would like to get some.

  • Carsten Blüggel
0.19.0-beta.1 2019-Jul-07
0.19.0-alpha.1 2019-May-07
0.18.0-beta.4 2018-Jul-13
0.18.0-beta.3 2018-Jun-02
0.18.0-beta.2 2018-May-17
Show all 24 versions
Download Stats:
  • 0 downloads today

  • 0 downloads this week

  • 0 downloads this month

  • 0 downloads total

Short URL: