! Copyright (C) 2017 Alexander Ilin.
! See http://factorcode.org/license.txt for BSD license.
-USING: alien alien.libraries alien.syntax combinators system ;
+USING: alien alien.c-types alien.libraries alien.syntax
+combinators system ;
IN: sodium.ffi
<< "sodium" {
} cond cdecl add-library >>
LIBRARY: sodium
+
+FUNCTION: int sodium_init ( )
--- /dev/null
+! Copyright (C) 2017 Alexander Ilin.
+! See http://factorcode.org/license.txt for BSD license.
+USING: init kernel math sodium.ffi ;
+IN: sodium
+
+ERROR: sodium-init-fail ;
+
+! Call this before any other function, may be called multiple times.
+: sodium-init ( -- ) sodium_init 0 < [ sodium-init-fail ] when ;
+
+[ sodium-init ] "sodium" add-startup-hook