Does Rust have an advantage if memory-safety is not an advantage?

Rust is best known for its memory safety features. At the same time, most web services today are already built using memory-safe languages such as Java, Python, Go or C#. Are there still compelling reasons to use Rust when the competing language is equally memory-safe? Perhaps there is a performance difference? Let's test the hypothesis … Continue reading Does Rust have an advantage if memory-safety is not an advantage?

Memory allocation is the root of all evil

Most production code is written without its performance being a goal, using "typical" coding patterns for different languages. These patterns tend to be exemplified in articles, official documentation and tutorials. Typical code allows you to get things done rapidly by making use of powerful and flexible language features and APIs. However, typical code is not … Continue reading Memory allocation is the root of all evil

DRM is not a black box, part 4: key management

DRM merely enforces policy and does not own keys. Historical key managament approaches leave it all in the care of the DRM vendor, leading to major lock-in and maintenance headaches that can require solution re-architecting when DRM vendors are changed or added. A modern solution architecture separates key management from DRM and enables flexible integration … Continue reading DRM is not a black box, part 4: key management

DRM is not a black box, part 3: secure playback

DRM clients are different but same. Security of DRM relies on keeping secret the cryptographic keys that protect content. The DRM client is the only component on the viewer's device authorized to handle these keys. In the DRM security model the viewer is the attacker which means that a DRM client operates under very difficult … Continue reading DRM is not a black box, part 3: secure playback

DRM is not a black box, part 2: encryption and content

Encryption is the tool that enables DRM. The internet is the birthplace of modern DRM. Even if you deploy an offline solution with local playback, DRM technologies operate with least hassle when your solution uses modern adaptive streaming technologies. A content processing workflow designed for adaptive streaming is a content processing workflow ready for DRM. … Continue reading DRM is not a black box, part 2: encryption and content

DRM is not a black box, part 1: why would you use DRM

Because you must. Apps, websites and services presenting high value video content use DRM technologies to prevent the viewer from making copies of the content. It can be surprising to learn that the website operator is not the one who ultimately benefits from DRM. The past twelve years of my work on media streaming projects … Continue reading DRM is not a black box, part 1: why would you use DRM

DRM in HTML: what EME has and has not done for us

How Encrypted Media Extensions changed the industry and what happens next. The World Wide Web Consortium has recently made a decision to publish Encrypted Media Extensions (EME) as a web standard. This has drawn criticism from many directions because EME standardizes a mechanism that is highly opaque to users, has the potential to jeopardize their … Continue reading DRM in HTML: what EME has and has not done for us

Converging on CMAF

Apple begins adopting media streaming industry standards. Apple announced today the support for fragmented MP4 segments in HTTP Live Streaming (HLS), taking the first step in bringing together the two competing adaptive streaming universes that exist today: HLS and DASH. The former is the premier media delivery technology on Apple products while the latter is … Continue reading Converging on CMAF